13

分析目的で、Google Play からいくつかのアプリをダウンロードする必要があります。しかし、私はそれを手動で行いたくありません (ダウンロードしたいアプリが変わるたびに頻繁に行う必要があります!)。

問題は、アプリをダウンロードするプログラムを書けるかどうかです。可能であれば、どのように?

Chrome 用のこのプラグインを見たことがあります: http://codekiem.com/2012/02/24/apk-downloader/ ですが、作成者を信頼できず (アプリには Google ユーザーとパスとデバイス ID が必要です)、実装することにしました独自のプログラム。

4

1 に答える 1

1

Java 実装を探している人は、次のとおりです。

トップレベルの手順:

  1. 携帯電話から Gmail ID、パスワード、Android ID、およびセキュリティ トークンを収集します
  2. Akdeniz によって実装されたクローラーの jar ファイルをダウンロードします
  3. Akdeniz から googleplay.java (cli) のソース ファイルをダウンロードします。
  4. googleplay.java を変更します
  5. すべてをまとめてください:D

詳細な手順:

  1. GmailのIDとパスワードは一目瞭然!Android IDについては、 demirozaliに従い、「getAndroidID」関数を使用します。「getAuthToken」を機能させることができませんでした。したがって、私はtoxicbakeryを使用してセキュリティ トークンを取得しました。関数「updateToken」(実際にセキュリティ トークンを取得する) は、UI スレッドではなくAsyncTaskで呼び出す必要があることに注意してください。

  2. Akdeniz github サイトから「 googleplaycrawler-0.1-SNAPSHOT.jar」ファイルをダウンロードします。

  3. jar ファイルの「GooglePlayAPI」クラスを利用できませんでした。そこで、CLI のバージョンを変更することにしました。「googleplaycrawler-0.1-SNAPSHOT.jar」の CLI クラスは「googleplay.java」と呼ば、ソース ファイルからダウンロードできます。

  4. 「googleplay.java」の名前を「Changed_googleplay.java」に変更し、変更します。メソッド「searchCommand()」が結果をコンソールに出力するのではなく、String の arrayList を返すようにします。

  5. 前の手順をすべて完了したら、jetBrains または ... でプロジェクトを作成し、「googleplaycrawler-0.1-SNAPSHOT.jar」をライブラリとして追加します。また、「Changed_googleplay.java」を src ディレクトリに追加します。最後に、アプリケーションで次のメソッドを使用します。次のクラスを使用してクエリを検索し、そのクエリに対応するすべての無料アプリをダウンロードできます。

    public void SearchAndDownload() {
        String login = "xxxx@gmail.com";
        String password = "xxxx";
        String androidId = "xxxx";
        String securitytoken = "xxxx";
        String command = "search";
        String query = "Maps";
        String offest = "0";
        String number = "5";
    
        Changed_googleplay gp = new Changed_googleplay();
        ArrayList<String> res = gp.operate(new String[]{"-i", androidId, "-e", login, "-p", password, "-t", securitytoken, command, "-o", offest, "-n", number, query});
    
        res.remove(0);
        if (command.equals("search")) {
            System.out.println("Title"+"\t"+"Package Name"+"\t"+"Price"+"\t"+"Number of Downloads");
            for (String line : res){
                String[] split = line.split(Changed_googleplay.DELIMETER);
                String name = split[0];
                String packageName = split[1];
                String creator = split[2];
                String price = split[3];
                String size = split[4];
                String dlNO = split[5];
                if(price.equals("Free")){
                    System.out.println(name+"\t"+packageName+"\t"+price+"\t"+dlNO);
                    gp.operate(new String[]{"-i", androidId, "-e", login, "-p", password, "-t", securitytoken, "download", packageName});
                }
            }
        }
    }
    

クローラー プロジェクトのメイン ページにあるコマンド ライン オプションのリストを参照してください。

楽しんで!

于 2013-06-05T15:54:14.770 に答える