使用无头浏览器进行安卓网页抓取 [已关闭]
2022-09-01 06:57:11
我花了一天时间研究一个可用于完成以下任务的库:
- 检索网页的完整内容,就像在后台一样,而不将结果呈现到视图中。
- 例如,该库应该支持在初始 HTML 加载后触发 ajax 请求以加载一些其他结果数据的页面。
- 从生成的html中,我需要以xpath或css选择器形式获取元素。
- 将来,我可能还需要导航到下一页(触发事件,提交按钮/链接等)
以下是我尝试过但没有成功的方法:
- Jsoup:工作得很好,但不支持javascript/ajax(所以它不会加载整页)
- Android内置于HttpEntity:javascript/ajax与jsoup的问题相同
- HtmlUnit:看起来正是我需要的,但几个小时后无法让它在Android上工作(其他用户尝试加载12MB +的jar文件失败。我自己加载了完整的源代码并将其作为项目库引用,却发现诸如Applets和java.awt(由HtmlUnit使用)之类的东西在Android中不存在。
- 犀牛 - 我发现这非常令人困惑,不知道如何让它在Android中工作,即使它是我正在寻找的。
- Selenium驱动程序:看起来它可以工作,但你没有一种直接的方法以无头的方式实现它,这样你就不会将实际的html显示到视图中。
我真的希望HtmlUnit工作,因为它似乎最适合我的解决方案。有没有适合我需求的方法或至少另一个我错过的图书馆?
我目前正在使用Android Studio 0.1.7,如果需要,可以移动到Ellipse。
提前致谢!