如何从网络中仅获取网页的一部分而不是下载整个页面

时间:2012-11-16 08:20:45

标签: java android google-play android-query

目前我正在使用名为Android Query的第三方库。我用它来下载网页,然后我解析html我想要的位。这些位主要位于页面的一小部分,因此其余部分将被丢弃。

每个页面大约100kb,我正在获取200-300页,其中有一段时间,特别是在慢速连接上。

是否有任何方法或库允许m e获取某个div?

我提供的网页来自谷歌游戏市场。

我正在使用的示例代码

String url = "https://play.google.com/store/apps/details?id=com.touchtype.swiftkey";

aq.ajax(url, String.class, new AjaxCallback<String>() {

        @Override
        public void callback(String url, String html, AjaxStatus status) {
                parseHtml(html);
        }

});

编辑:如果不可能,是否有我可以访问和下载的轻量级Google Play页面?

1 个答案:

答案 0 :(得分:0)

在这里看另一个答案: Is there a way to download partial part of a webpage, rather than the whole HTML body, programmatically?

看起来有办法做到这一点,但你需要知道字节范围。这将非常容易出错,因为如果谷歌更改页面的不同部分,内容可能会随着时间的推移而轻易改变。

您可以设置自己的网络服务器,让它位于您的应用和Google Play之间,并返回您查询的数据。

有关于此的黑客新闻主题: https://news.ycombinator.com/item?id=4634259

显然Apple有一个JSON API,但谷歌没有。

以下是两个可用于简化任务的服务器端库:

您只能从网络应用中返回所需的数据,使其尽可能细长。您也可以将其缓存在您的服务器上,这样您就不必为每个请求点击谷歌。在一个请求中发送多个应用ID以最小化往返。