4

我目前正在编写一个 Android 应用程序,除其他外,它使用来自我不拥有的网站的文本信息。此外,有些页面需要认证。

对于某些页面,我已经能够使用 BasicNameValuePairs 和带有关联对象的 HTTPClient 登录并检索 html 代码。

不幸的是,这些方法在没有运行浏览器(甚至 Android Webview)通常会运行的任何 javascript 函数的情况下检索网页源。我需要其中一些脚本正在检索的文本。

我已经完成了我的研究,但我发现的一切都是猜测并且非常混乱。我可以暂时忽略需要登录的页面。此外,我愿意发布任何可能对构建解决方案有用的代码;这是一个独立的项目。

从javascript调用中抓取html结果的任何具体解决方案?一个例子绝对是一流的。

4

2 回答 2

8

最终成功:

我尝试过的其他事情:

  • Android提供的 HttpClient
    • 无法运行 javascript
  • html单元
    • 4小时,没有成功。也很大,在我的 apk 中增加了 12 mb。
  • SL4A
    • 终于编译好了。使用指南进行设置。被遗弃为一个简单的犀牛罐子的过度杀伤力。

可能有用的东西:

进一步的结果将被公布。如果发布其他结果将被添加。

注意:上面列出的许多选项相互引用。我认为 rhino 包含在 sl4a 和 htmlunit 中。另外,我认为 htmlunit 包含硒。

于 2012-06-19T23:32:10.967 回答
4

上述解决方案非常慢,并且将您限制为 1 个 url(嗯,不是真的,但我敢当您的用户不耐烦地等待结果时,您可以使用 Rhino 抓取 10 个 url)。

另一种方法是使用云抓取解决方案。您不会在下载不会使用的内容时浪费手机带宽。

试试这个解决方案:Bobik Java SDK

它使您能够在几秒钟内抓取多达数百个站点

于 2012-06-26T01:32:00.437 回答