【发布时间】:2013-06-28 06:06:28
【问题描述】:
我花了一天时间研究可用于完成以下任务的库:
- 在后台检索网页的全部内容,而不将结果呈现给视图。
- 例如,该库应支持在初始 HTML 加载后触发 ajax 请求以加载一些额外结果数据的页面。
- 我需要从生成的 html 中抓取 xpath 或 css 选择器形式的元素。
- 以后我可能还需要导航到下一页(触发事件、提交按钮/链接等)
这是我尝试过但没有成功的方法:
- Jsoup:效果很好,但不支持 javascript/ajax(因此它不会加载整页)
- Android 内置 HttpEntity:javascript/ajax 与 jsoup 存在相同问题
- HtmlUnit:看起来正是我所需要的,但下班后无法在 Android 上运行(其他用户尝试加载 12MB 以上的 jar 文件失败。我自己加载了完整的源代码并将其仅作为项目库引用发现诸如 Applets 和 java.awt(由 HtmlUnit 使用)之类的东西在 Android 中不存在)。
- Rhino - 我觉得这很令人困惑,不知道如何让它在 Android 中运行,即使它是我正在寻找的。li>
- Selenium 驱动程序:看起来它可以工作,但您没有直接的方法以无头方式实现它,因此您不会将实际的 html 显示到视图中。
我真的希望 HtmlUnit 能够工作,因为它似乎最适合我的解决方案。有什么方法或至少我错过了另一个适合我需要的库吗?
我目前使用的是 Android Studio 0.1.7,如果需要可以迁移到 Ellipse。
提前致谢!
【问题讨论】:
-
似乎没有什么可以用于我的场景。我已经开始为 HTMLUnit 开发一个 Android 端口,并希望很快能有一些工作。一旦我签入任何人都可以下载的 HtmlUnit 分支,我就会在这里发布。希望我能让 HtmlUnit 开发人员参与进来,因为似乎对 Android 端口有很多兴趣。
-
已经 4 年了,我们还在这里!我也面临同样的问题!
-
鉴于当前的答案,这应该被改写为不是图书馆请求。然后可以重新打开它。如果您确实改写它,请联系我
@Makyen,以便我可以帮助重新打开它。 -
2020 年有什么推荐的库吗?
-
@toothpick 有很多关于 selenium 被用于使用 JS 功能(在 python 中)进行网络爬取的有前途的帖子,但我还没有让它在 Android Studio 中工作。我很确定 selenium 搭载了本地设备的 webdrivers,这使得使用为 windows 构建的流行 chromedriver 变得困难。我打算试一试这个答案,但令人惊讶的是,在发布 7 年后仍然没有一个好的解决方案。
标签: java android selenium web-scraping htmlunit