2016-01-05 43 views
8

Tôi muốn tải xuống rất nhiều ứng dụng từ google play tới PC và cài đặt apk trên điện thoại để kiểm tra.Có thể tải xuống apk từ google play theo lập trình với PC không?

Tôi đã thấy rằng http://apk-dl.com/ có thể tải xuống gói ứng dụng xuống máy tính, vì vậy có thể thực hiện điều tương tự bằng cách sử dụng java hoặc python hoặc có một số ví dụ mã không?

+0

Mã mở rộng cho trình duyệt có giúp bạn không? –

+0

@Biju Parvathy ok cảm ơn, nhưng tôi muốn downlond apk mà không cần một trình duyệt, chỉ cần cung cấp apk url, và nó sẽ downlod nó tự động –

+0

Xem câu trả lời của tôi, nó khác với phần mở rộng của trình duyệt. –

Trả lời

4

Sử dụng Google Play không chính thức Python API (github)

Sử dụng API này bạn có thể tải APK bằng tên gói của họ:

python download.py com.google.android.gm 

Đối với việc tìm kiếm gói ứng dụng có liên quan, bạn có thể sử dụng tìm kiếm hoặc thậm chí phân tích tiểu thể loại

python search.py earth 
python list.py WEATHER apps_topselling_free 
+0

@Được mở rộng trong config.py có AUTH_TOKEN = Không, cách nhận giá trị AUTH_TOKEN? –

+0

Tạo một tài khoản từ [HERE] (https://developers.google.com/android-publisher/authorization?hl=en) –

0

Nếu bạn là một trình tải xuống APK thông thường hơn thì tiện ích của Chrome có thể không thực sự cần thiết. Thay vào đó, bạn chỉ có thể truy cập trang web chuyên dụng để tạo liên kết tải xuống APK bất cứ khi nào bạn cần.

Đi tới Cửa hàng Play và tìm ứng dụng bạn muốn tải xuống. Sao chép địa chỉ URL của ứng dụng từ thanh địa chỉ của trình duyệt. Tiếp theo, truy cập trang web như Apk16 APK Downloader (Apk16 cũng có tiện ích mở rộng Chrome/Firefox) và dán tên gói ứng dụng (hoặc toàn bộ URL Google Play nếu bạn lười) trong hộp ở đầu trang.

4

Bạn cũng có thể xóa http://apk-dl.com để nhận liên kết tải xuống apk, các bước bao gồm trước tiên hãy chuyển đến http://apk-dl.com/{packageName} và trích xuất giá trị liên kết trong 2 trang liên tiếp.

Một ví dụ bash sử dụng curl để tải về và pup để phân tích HTML sẽ là:

#!/bin/bash 

package=com.facebook.katana 

# Download APK 
temp_link=$(curl -s "http://apk-dl.com/$package" | pup ".download-btn .mdl-button attr{href}") 
temp2_link=$(curl -s "http://apk-dl.com/$temp_link" | pup ".detail a attr{href}") 
dl_link=$(curl -s "$temp2_link" | pup ".contents a attr{href}") 

rm -f app.apk 
curl -s -o app.apk "http:$dl_link" 

Trong Java, các phương pháp sau đây trả lại url apk download:

public static String getApkDownloadUrl(final String packageName) throws IOException { 

    Elements data = Jsoup.connect("http://apk-dl.com/" + packageName).get().select(".download-btn .mdl-button"); 

    if (data.size() > 0) { 

     Elements data2 = Jsoup.connect("http://apk-dl.com" + data.attr("href")).get() 
       .select(".detail a"); 

     if (data2.size() > 0) { 

      Elements data3 = Jsoup.connect(data2.attr("href")).get() 
        .select(".contents a"); 

      return (data3.size() > 0) ? "http:" + data3.attr("href") : ""; 
     } 
    } 
    return ""; 
} 

Trong Python:

import urllib2 
from bs4 import BeautifulSoup 
import re 

def get_apk_url(package_name): 
    opener = urllib2.build_opener() 

    response = opener.open('http://apk-dl.com/' + package_name) 
    soup = BeautifulSoup(response.read(), 'html.parser') 
    temp_link = soup.find("div",{'class': 'download-btn'}).find("a")["href"] 

    response = opener.open('http://apk-dl.com/' + temp_link) 
    soup = BeautifulSoup(response.read(), 'html.parser') 
    temp_link2 = soup.find("section",{'class': 'detail'}).find("a")["href"] 

    response = opener.open(temp_link2) 
    soup = BeautifulSoup(response.read(), 'html.parser') 
    temp_link3 = soup.find("div",{'class': 'contents'}).find("a")["href"] 

    return "http:" + temp_link3 

print(get_apk_url('com.facebook.katana')) 
+2

rất tốt! nhưng trang thứ ba được bảo vệ bằng hình ảnh xác thực bây giờ là – VinceFR

+0

điều này hữu ích nhưng tôi nghĩ mục đích của anh ấy là viết mã của riêng mình mà không cần bất kỳ gói của bên thứ ba nào. – trungducng

+0

@VinceFR bạn có biết cách nào khác không? –

0

Tôi đã tìm thấy gói có liên quan được viết bằng nút js here

Các vấn đề liên quan