htmlunit抓取动态网页(JavaHTML4支持代理服务器(5)支持自动的Cookies管理)
优采云 发布时间: 2021-09-16 06:14htmlunit抓取动态网页(JavaHTML4支持代理服务器(5)支持自动的Cookies管理)
(4)support代理服务器)
(5)支持自动cookie管理等)
Jsoup
Jsoup是一个Java HTML解析器,它可以直接解析URL地址和HTML文本内容。它提供了一个非常省力的API,可以通过DOM、CSS和类似于jQuery的操作方法获取和操作数据
网页获取和解析的速度很快,这是推荐的
主要功能如下:
从URL、文件或字符串解析HTML;使用DOM或CSS选择器查找和检索数据;操作HTML元素、属性和文本;htmlunit
Htmlunit是一个开源Java页面分析工具。阅读页面后,您可以有效地使用htmlunit分析页面上的内容。该项目可以模拟浏览器操作,称为Java浏览器的开源实现。这种没有界面的浏览器运行速度也很快。它使用rhinojs引擎来模拟JS操作
???坦率地说,它是一个用Java编写的浏览器,没有接口。因为它没有接口,执行速度仍然会下降。Htmlunit提供了一系列API,可以执行许*敏*感*词*,例如填写表单、提交表单、模拟单击链接。由于内置rhinojs引擎,可以执行JavaScript
网页获取和解析速度快,性能好。建议用于需要解析网页脚本的应用程序场景
瓦蒂
Watij(发音为wattage)是一个用Java开发的web应用程序测试工具。鉴于watij的简单性和Java语言的强大功能,watij可以让您在真正的浏览器中完成web应用程序的自动测试。因为它调用本地浏览器,所以支持CSS呈现和JS执行
获取网页的速度是平均的。IE版本过低(6/7))时可能会发生内存泄漏
建议使用htmlunit进行网页捕获,主要原因是:
Htmlunit是“Java程序的无Gui浏览器”。它为HTML文档建模,并提供一个API,允许您调用页面、填写表单、单击链接等,就像在“普通”浏览器中一样。它有很好的JavaScript支持(持续改进),您甚至可以根据使用的配置使用相当复杂的Ajax库来模拟chrome、Firefox或Internet Explorer。它通常用于测试或从网站检索信息
Maven导入jar包:
net.sourceforge.htmlunit htmlunit 2.30 net.sourceforge.htmlunit htmlunit-core-js 2.28 net.sourceforge.htmlunit htmlunit-cssparser 1.0.0 //引入jsoup来对网页进行解析 org.jsoup jsoup 1.11.3 net.sourceforge.htmlunit neko-htmlunit 2.30
下面是一个例子。创建一个web客户端,让它从一定程度上加载主页。然后我们打印页面标题是否正确。Getpage()根据返回数据的内容类型,可以返回不同类型的页面。在本例中,我们希望内容类型为text/HTML,因此我们将结果转换为com.gargoylesoftware.htmlun.HTML.htmlpage
非常方便:
import com.gargoylesoftware.htmlunit.WebClient; import com.gargoylesoftware.htmlunit.html.HtmlPage; public class Test { public void homPage() throws Exception { try (final WebClient webClient = new WebClient()) { final HtmlPage page = webClient.getPage("http://www.baidu.com"); System.out.println(page.getTitleText()); } } public static void main(String[] args) { try { new Test().homPage(); } catch (Exception e) { e.printStackTrace(); } } } 打印结果: 百度一下,你就知道 Process finished with exit code 0
有关具体的介绍性案例和API,请参阅官方文件
原文: