java中使用HtmlUnit爬虫

1.pom文件中添加依赖

<dependency>
    <groupId>net.sourceforge.htmlunit</groupId>
    <artifactId>htmlunit</artifactId>
    <version>2.27</version>
</dependency>

2.写一个获取页面的util方法

public HtmlPage getHtmlPageResponse(WebClient webClient,String url) throws Exception {
   
    webClient.getOptions().setThrowExceptionOnScriptError(false);//当JS执行出错的时候是否抛出异常
    webClient.getOptions().setThrowExceptionOnFailingStatusCode(false);//当HTTP的状态非200时是否抛出异常
    webClient.getOptions().setActiveXNative(false);
    webClient.getOptions().setCssEnabled(true);//是否启用CSS
    webClient.getOptions().setJavaScriptEnabled(true); //很重要,启用JS
    webClient.getOptions().setRedirectEnabled(true);
    webClient.setAjaxController(new NicelyResynchronizingAjaxController());//很重要,设置支持AJAX

    webClient.getCookieManager().setCookiesEnabled(true);

    webClient.getOptions().setTimeout(timeout);//设置“浏览器”的请求超时时间
    webClient.setJavaScriptTimeout(timeout);//设置JS执行的超时时间

    HtmlPage page;
    try {
        page = webClient.getPage(url);
    } catch (Exception e) {
        webClient.close();
        throw e;
    }
    webClient.waitForBackgroundJavaScript(waitForBackgroundJavaScript);//该方法阻塞线程

    return page;
}

3.调用util方法

WebClient webClient = new WebClient();
HtmlPage htmlPage = httpUtils.getHtmlPageResponse(webClient,infoSource.getSourceUrl());
Document document = Jsoup.parse(htmlPage.asXml());//获取html文档
//处理document获取需要的内容

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
HTMLUnit是一个Java库,它用于模拟浏览器行为并执行Web页面的自动化测试。下面是一个简单的HTMLUnit使用教程: 1. 首先,你需要在你的Java项目导入HTMLUnit库。你可以通过在你的构建工具(如Maven或Gradle)添加以下依赖来实现: ```xml <dependency> <groupId>net.sourceforge.htmlunit</groupId> <artifactId>htmlunit</artifactId> <version>2.53.0</version> </dependency> ``` 2. 创建一个新的Java类,并导入HTMLUnit相关的类和方法: ```java import com.gargoylesoftware.htmlunit.WebClient; import com.gargoylesoftware.htmlunit.html.HtmlPage; ``` 3. 在你的代码创建一个WebClient对象,并启用JavaScript支持(如果需要执行JavaScript): ```java WebClient webClient = new WebClient(); webClient.getOptions().setJavaScriptEnabled(true); ``` 4. 使用WebClient对象获取HtmlPage对象,该对象表示要测试的Web页面: ```java HtmlPage page = webClient.getPage("http://example.com"); ``` 5. 一旦你有了HtmlPage对象,你就可以通过使用HTML DOM模型的方法来获取页面的元素或执行其他操作。例如,你可以通过元素的ID获取元素: ```java HtmlElement element = page.getElementById("myElementId"); ``` 6. 你还可以模拟用户与页面的交互,例如填写表单、点击按钮等。例如,要填写一个文本框,你可以使用以下代码: ```java HtmlTextInput textField = (HtmlTextInput) page.getElementById("myTextFieldId"); textField.setValueAttribute("Hello, HTMLUnit!"); ``` 7. 最后,记得在使用完毕后关闭WebClient对象,以释放资源: ```java webClient.close(); ``` 这只是一个HTMLUnit的简单使用教程,你可以根据你的具体需求进一步深入学习和了解HTMLUnit的功能和特性。希望对你有帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值