我花了一天的时间研究一个库,可以用来完成以下任务:
- 后台获取网页的全部内容,而不需要呈现结果给用户。
- 该库应支持在初始HTML加载后触发AJAX请求以加载一些附加结果数据的页面。
- 从结果HTML中,我需要以xpath或css选择器形式抓取元素。
- 将来我还可能需要导航到下一页(触发事件,提交按钮/链接等)
以下是我尝试但未成功的方法:
- Jsoup:效果很好,但不支持JavaScript/ajax(因此它不会加载完整的页面)
- Android内置HttpEntity:与Jsoup相同,无法处理JavaScript/ajax
- HtmlUnit:看起来非常符合我的需求,但经过几个小时的尝试仍不能在Android上运行(其他用户试图加载12MB+的jar文件也失败了。我自己加载了完整的源代码,并将其作为项目库引用,结果发现HtmlUnit使用的Applets和java.awt并不存在于Android中)。
- Rhino-我认为这很令人困惑,不知道如何在Android上使用它,即使它就是我正在寻找的。
- Selenium Driver:看起来可以工作,但您没有直接实现以无头方式进行操作的简单方式,以便不会将实际HTML显示给用户。
我真的希望HtmlUnit能够正常工作,因为它似乎最适合我的解决方案。有没有办法或者至少是我忽略了的另一个库,适合我的需求?
我目前使用的是Android Studio 0.1.7,如果需要可以切换到Ellipse。
提前感谢!