下载Google Play主页

时间:2012-05-18 14:19:59

标签: java android html urlconnection

我正在尝试从新的Google Play市场下载页面,但似乎得到了奇怪的结果。我使用网址https://play.google.com/store/apps/details?id=package.name和以下方法:

private static String downloadString(final URL url) throws IOException {
    final HttpsURLConnection conn = (HttpsURLConnection) url
            .openConnection();
    conn.setHostnameVerifier(new HostnameVerifier() {

        @Override
        public boolean verify(final String hostname,
                final SSLSession session) {
            return true;
        }
    });
    conn.setReadTimeout(10000);

    String html;

    try {
        final InputStream is = conn.getInputStream();
        final BufferedInputStream bis = new BufferedInputStream(is);
        final ByteArrayBuffer baf = new ByteArrayBuffer(50);

        int current = 0;
        while ((current = bis.read()) != -1) {
            baf.append((byte) current);
        }

        /* Convert the Bytes read to a String. */
        html = new String(baf.toByteArray());

    } finally {
        conn.disconnect();
    }

    return html;
}

结果不包含描述,更改日志或任何重要内容,但我的html知识不足以理解下载的确切内容。我把下载的源代码here给任何感兴趣的人。它比任何Google Play应用页面所需的页面小10倍。

我的问题是,如何获取原始应用页面的来源?

2 个答案:

答案 0 :(得分:1)

你从你的方法得到的可能是正确的。谷歌喜欢使用javascript来加载资源以提高性能,并且所有Javascript都被编译,所以它完全不可读。

因此,当您下载页面时,您可能会收到非常少量的HTML,并且您提到更改日志等不存在?这意味着他们正在使用某种客户端运行时加载,很可能是javascript。

要下载这个,你需要一个浏览器或库,可以执行Javascript,CSS和布局HTML。

也许像Jambi一样检查图书馆?我知道QT有一个使用Webkit的QWebView组件,但我不知道这是否会运行Javascript。

希望至少指出你正确的方向。

答案 1 :(得分:0)

尝试安装,例如浏览器中的Firebug插件或任何其他工具,可让您在访问页面时监控http流量。然后,您可以看到进行哪些调用以加载实际数据。你可能只是抓住那些网址。