htmlunit抓取动态网页(JavaHTML4支持代理服务器(5)支持自动的Cookies管理)

优采云 发布时间: 2021-09-16 06:14

  htmlunit抓取动态网页(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,请参阅官方文件

  原文:

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线