Java 以编程方式从Google Play下载应用程序

Java 以编程方式从Google Play下载应用程序,java,android,download,Java,Android,Download,我需要从google play下载一些应用程序进行分析。但我不想手动操作(我必须经常这样做,每次我想下载的应用程序都会改变!) 所以,问题是,我是否可以编写一个程序来下载这些应用程序。如果可能,怎么做 我看过这个chrome插件: 但是我不能信任作者(该应用程序需要google用户和pass以及设备ID),我已经决定实现我自己的程序。对于那些正在寻找Java实现的人,这里是: 顶级步骤: 从手机中收集gmail ID、密码、Android ID和安全令牌 下载Akdeniz实现的爬虫程序的jar

我需要从google play下载一些应用程序进行分析。但我不想手动操作(我必须经常这样做,每次我想下载的应用程序都会改变!)

所以,问题是,我是否可以编写一个程序来下载这些应用程序。如果可能,怎么做

我看过这个chrome插件:
但是我不能信任作者(该应用程序需要google用户和pass以及设备ID),我已经决定实现我自己的程序。

对于那些正在寻找Java实现的人,这里是:

顶级步骤:

  • 从手机中收集gmail ID、密码、Android ID和安全令牌
  • 下载Akdeniz实现的爬虫程序的jar文件
  • 从Akdeniz下载googleplay.java(cli)的源文件
  • 修改googleplay.java
  • 总而言之:D
  • 详细步骤:

  • Gmail ID和密码是显而易见的!对于Android ID,遵循并使用“GetAndroid”函数。我无法让“getAuthToken”工作!因此,我使用安全令牌。请注意,函数“updateToken”(它实际上为您获取安全令牌)应该在非on UI线程中调用

  • 从下载“googleplaycrawler-0.1-SNAPSHOT.jar”文件

  • 我无法在jar文件中使用“GooglePlayAPI”类。因此,我决定更改CLI版本。“googleplaycrawler-0.1-SNAPSHOT.jar”中的CLI类称为“googleplay.java”,可从下载

  • 将“googleplay.java”重命名为“Changed\u googleplay.java”并对其进行修改。方法“searchCommand()”返回字符串的arrayList,而不是在控制台上打印结果

  • 完成前面的所有步骤后,在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});
                }
            }
        }
    }
    
    public void SearchAndDownload(){
    字符串登录=”xxxx@gmail.com";
    字符串密码=“xxxx”;
    字符串android=“xxxx”;
    字符串securitytoken=“xxxx”;
    String命令=“搜索”;
    字符串query=“Maps”;
    字符串offest=“0”;
    字符串编号=“5”;
    Changed_googleplay gp=新的Changed_googleplay();
    ArrayList res=gp.operate(新字符串[]{“-i”,android,“-e”,login,“-p”,password,“-t”,securitytoken,command,“-o”,offest,“-n”,number,query});
    res.remove(0);
    if(command.equals(“search”)){
    System.out.println(“标题“+”\t“+”包名“+”\t“+”价格“+”\t“+”下载次数”);
    for(字符串行:res){
    String[]split=line.split(已更改为googleplay.DELIMETER);
    字符串名称=拆分[0];
    字符串packageName=split[1];
    字符串创建者=拆分[2];
    字符串价格=拆分[3];
    字符串大小=拆分[4];
    字符串dlNO=split[5];
    if(价格等于(“免费”)){
    System.out.println(name+“\t”+packageName+“\t”+price+“\t”+dlNO);
    gp.operate(新字符串[]{“-i”,android,“-e”,login,“-p”,密码,“-t”,securitytoken,“download”,packageName});
    }
    }
    }
    }
    
  • 您可能希望查看爬虫项目中的命令行选项列表


    玩得开心

    好问题亲爱的+1