httpunit 抓取网页(开源java页面分析工具运行速度迅速,被誉为java浏览器)

优采云 发布时间: 2021-10-28 16:03

  httpunit 抓取网页(开源java页面分析工具运行速度迅速,被誉为java浏览器)

  HtmlUnit 介绍

  htmlunit 是一个开源的 java 页面分析工具。阅读完页面后,您可以有效地使用 htmlunit 来分析页面上的内容。该项目可以模拟浏览器操作,被称为java浏览器的开源实现。它是一个没有界面的浏览器,运行速度很快。是junit的扩展之一

  HtmlUnit 示例

  import java.io.IOException;

import com.gargoylesoftware.htmlunit.WebClient;

import com.gargoylesoftware.htmlunit.html.HtmlForm;

import com.gargoylesoftware.htmlunit.html.HtmlPage;

import com.gargoylesoftware.htmlunit.html.HtmlSubmitInput;

import com.gargoylesoftware.htmlunit.html.HtmlTextInput;

public class Ddkjg {

public static void main(String[] args) throws IOException {

// 得到浏览器对象,直接New一个就能得到,现在就好比说你得到了一个浏览器了

WebClient webclient = new WebClient();

// 下面这2句可以写,也可以不写,设置false就是不加载css和js。访问速度更快

webclient.getOptions().setCssEnabled(false);

webclient.getOptions().setJavaScriptEnabled(false);

// 做的第一件事,去拿到这个网页,只需要调用getPage这个方法即可

HtmlPage htmlpage = webclient.getPage("https://baidu.com");

// 根据名字得到一个表单,查看上面这个网页的源代码可以发现表单的名字叫“f”

final HtmlForm form = htmlpage.getFormByName("f");

// 同样道理,获取”百度一下“这个按钮

final HtmlSubmitInput button = form.getInputByValue("百度一下");

// 得到搜索框

final HtmlTextInput textField = form.getInputByName("wd");

//设置搜索框的value

textField.setValueAttribute("战狼2");

// 设置好之后,模拟点击按钮行为。

final HtmlPage nextPage = button.click();

// 把结果转成String

String result = nextPage.asXml();

//得到的是点击后的网页

System.out.println(result);

}

}

  注意:

  1:webclient 包是 htmlunit,不是 httpunit。 httpunit 的 webclient 类是抽象的,不能直接新建。

  2:htmlunit包使用最新版本的2.27 jar包。低版本的jar包没有getOptions()类。

  3:如果出现这个错误,UnsupportedClassVersionError。表示版本不一致。确保你本地jdk版本是1.8,eclipse部署的版本也是1.8,所以我就不说怎么看了。

  jar包下载地址:

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线