2016-01-05 12 views
8

Vorrei scaricare un sacco di apk da google play a PC e installare apk sul telefono per test.E 'possibile scaricare apk da google play programmaticamente su PC?

Ho visto che http://apk-dl.com/ può scaricare un apk sul pc, quindi è possibile fare la stessa cosa usando java o python o alcuni esempi di codice?

+0

Il codice per un'estensione del browser può essere d'aiuto? –

+0

@Biju Parvathy ok grazie, ma mi piacerebbe scaricare l'apk senza browser, basta fornire apk url, e lo scaricherò automaticamente –

+0

Vedere la mia risposta, è diverso dall'estensione del browser. –

risposta

4

utilizzare Google Play non ufficiale Python API (github)

Utilizzando questa API è possibile scaricare APK usando il loro nome del pacchetto:

python download.py com.google.android.gm 

Per trovare APK rilevanti è possibile utilizzare la ricerca o anche analizzare sottocategorie

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

@Marged in config.py c'è AUTH_TOKEN = Nessuno, come ottenere il valore AUTH_TOKEN? –

+0

Creane uno da [QUI] (https://developers.google.com/android-publisher/authorization?hl=it) –

0

Se sei un downloader APK più casual, probabilmente un'estensione di Chrome non è realmente necessaria. Invece, puoi semplicemente visitare un sito dedicato per generare link di download APK ogni volta che è necessario.

Vai al Play Store e trova l'app che desideri scaricare. Copia l'indirizzo URL dell'app dalla barra degli indirizzi del browser. Successivamente, vai a un sito come Apk16 APK Downloader (Apk16 ha anche un'estensione per Chrome/Firefox) e incolla il nome del pacchetto dell'app (o l'intero URL di Google Play se sei pigro) nella casella nella parte superiore della pagina.

4

È inoltre possibile eliminare per ottenere il collegamento di download di apk, i passaggi includono per prima andare a http://apk-dl.com/{packageName} ed estrarre il valore del collegamento in 2 pagine consecutive.

Un esempio bash che utilizza curl per scaricare e pup per analizzare HTML potrebbe essere:

#!/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" 

In Java, il seguente metodo riportare l'apk URL per il 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 ""; 
} 

In 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

molto buono! ma la terza pagina è protetta con un captcha ora – VinceFR

+0

questo è utile ma penso che il suo scopo sia quello di scrivere il proprio codice senza alcun pacchetto di terze parti. – trungducng

+0

@VinceFR conosci qualche altro modo? –

0

Ho trovato il pacchetto rilevante scritto nel nodo js here

Problemi correlati