`
deyum
  • 浏览: 35890 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

HTMLUnit : javascript 对页面的更改如何获得

    博客分类:
  • Web
阅读更多

HTMLUnit acts like a real browser, so everything  that the javascript done in the HTML page's DOM model will not affect the source of page.
But we can get the updated DOM model from using this method: HtmlPage.asXml().

Maybe a page should finished loading all data by several ajax requests, so sometimes it need to call

webClient.setJavaScriptEnabled(true);
webClient.setJavaScriptTimeout(3600*1000);
webClient.setRedirectEnabled(true);
webClient.setThrowExceptionOnScriptError(true);
webClient.setThrowExceptionOnFailingStatusCode(true);
webClient.setTimeout(3600*1000);

webClient.waitForBackgroundJavaScript(600*1000);
webClient.setAjaxController(new NicelyResynchronizingAjaxController());




And using Thread.sleep( ).

 

分享到:
评论
1 楼 shenbai 2013-12-03  
thanks。
我试了一下,实际上只需要调用waitForBackgroundJavaScript()方法--此方法阻塞直至所有js运行完毕。并且该方法需要在getPage()方法--所有获取网页的动作之后,否则无效。

相关推荐

    htmlunit-2.20.zip

    HTMLUnit是一个强大的Java库,它模拟了一个无头Web浏览器,允许开发者在没有图形用户界面的情况下执行JavaScript和HTML页面。这个库特别适用于自动化测试、数据抓取和其他需要与Web交互的任务,而无需真正打开一个...

    htmlunit-2.14

    HTMLUnit是一个Java库,它提供了一个无头浏览器模拟器,用于自动化Web页面的测试和抓取。这个库的核心功能是能够解析、渲染和执行JavaScript,从而使得开发者可以在没有实际浏览器环境的情况下,对网页进行功能测试...

    htmlunit源码

    它使用 Rhino 和 Netty 引擎来处理JavaScript,能够处理AJAX请求和其他基于JavaScript的页面交互。 3. **网页模拟**:HTMLUnit提供了对HTTP请求和响应的模拟,可以设置cookies、管理会话,甚至模拟不同的浏览器和...

    最新htmlunit 2.29

    - **JavaScript支持**:HTMLUnit内建了 Rhino JavaScript 引擎,可以执行页面中的JavaScript代码,这对于测试网页动态行为至关重要。 - **Ajax支持**:HTMLUnit能够处理异步请求,模拟用户触发的Ajax事件,使...

    htmlunit-2.8(api文档).zip

    这些类提供了对DOM树的访问,允许开发者轻松获取或修改网页内容。 在使用HTMLUnit进行网页爬虫开发时,你可以遵循以下步骤: 1. **初始化WebClient**:创建`WebClient`对象,设置适当的配置,如浏览器版本,是否...

    HtmlUnit官网下载

    3. **DOM操作**:它提供了与DOM相关的API,允许开发者对网页元素进行查找、修改和操作,类似于使用jQuery等库。 4. **异常处理**:HtmlUnit能够捕获并处理网页加载过程中的错误,如JavaScript错误或网络异常,帮助...

    giant-htmlunit_test.rar

    HTMLUnit是一个Java库,它提供了一个无头浏览器的模拟,用于自动化Web页面的测试和抓取。这个"giat-htmlunit_test.rar"压缩包显然包含了与使用HTMLUnit进行JavaScript交互和网页抓取相关的代码示例或测试用例。在...

    jsoup个人小案例(有结合htmlunit的)

    2. **JavaScript支持**:HtmlUnit能执行JavaScript代码,这对于那些依赖JavaScript渲染的网页特别有用。 3. **网络模拟**:它可以发送HTTP请求,处理响应,模拟Cookie和其他HTTP头部信息。 4. **页面交互**:点击...

    htmlunit-2.13

    3. **JavaScript支持**:HtmlUnit能处理JavaScript,所以即使页面依赖于脚本也可以正常工作。 ```csharp webClient.Options.JavaScriptEnabled = true; ``` 4. **网页元素操作**:通过`Page`对象,可以访问HTML元素...

    htmlunit-2.27-src.zip

    3. **JavaScript支持**:HTMLUnit内置了Rhino JavaScript引擎,允许它执行网页中的JavaScript代码,这对于动态网页的渲染至关重要。 4. **异常处理**:源码中会有各种异常类,用于捕获和处理在模拟浏览器操作时可能...

    htmlunit爬虫技术jar包

    4. **执行JavaScript**:HTMLUnit可以执行页面上的JavaScript代码,获取或修改页面内容。 ```java String jsResult = page.executeJavaScript("document.title").getReturnValue(); ``` 5. **提交表单**:HTMLUnit...

    htmlunit爬取数据转储excel

    HTMLUnit是一个无头浏览器,它能够解析HTML、CSS、JavaScript,并执行页面上的脚本。由于它不依赖于图形用户界面,因此特别适合自动化测试和网页抓取。HTMLUnit提供了类似于WebClient的API,使得开发者可以方便地...

    htmlunit 2.12

    3. **处理JavaScript**:HTMLUnit可以执行页面上的JavaScript代码,例如通过`executeScript()`方法执行自定义的JS脚本,获取动态生成的内容。 4. **网页元素操作**:通过DOM接口,可以查找、遍历和修改网页元素,如`...

    htmlunit jar包

    然而,HTMLUnit也有一些限制,比如对某些复杂的JavaScript库支持有限,以及在处理现代复杂网页时可能遇到的兼容性问题。尽管如此,对于许多简单的自动化任务和测试场景,HTMLUnit仍然是一个高效且实用的工具。

    爬虫工具htmlunit,selemium,beatifulsoup

    然而,由于它对某些复杂的JavaScript库的支持可能不够完善,对于高度依赖JavaScript的应用,可能需要更强大的工具,如Selenium。 2. **Selenium**: Selenium是一个功能强大的自动化测试工具,也可用于网页爬虫。...

    jsoup_htmlunit_seleniumWebdriver_jar

    它支持JavaScript,能够执行页面上的脚本,从而进行功能测试和自动化。通过使用HtmlUnit,开发者可以在无需真实浏览器的情况下进行网页应用的测试,大大提高了测试效率和准确性。HtmlUnit2_2_6和HtmlUnit1_4分别代表...

    针对 httpclient4.* 绕验证码获取公司信息 包括 jsoup网页信息的爬虫及htmlUnit对动态网站信息的抓取

    4. 对于动态加载的内容,利用HtmlUnit模拟浏览器行为,执行页面上的JavaScript,确保所有内容都已加载完毕。 5. 使用HtmlUnit的API进一步提取动态生成的数据,如评论、评分等。 6. 整理并存储所获取的所有信息,可能...

    java抓取网页数据实现

    除了基础的HTTP请求和HTML解析,还有其他高级话题,如处理JavaScript渲染的页面(可能需要使用如Selenium这样的工具)、反爬虫策略(如设置代理、User-Agent、延迟请求等)、数据存储(如CSV、数据库)以及多线程...

    网络爬虫资料,全套Java写的

    - 动态内容爬取:使用HtmlUnit或Selenium抓取JavaScript渲染后的页面。 - 数据分析:对抓取的数据进行清洗、统计和分析,例如情感分析、关键词提取等。 本套Java网络爬虫资料将涵盖以上所有知识点,通过学习,你...

Global site tag (gtag.js) - Google Analytics