- 浏览: 35899 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
shenbai:
thanks。我试了一下,实际上只需要调用waitForBac ...
HTMLUnit : javascript 对页面的更改如何获得
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()方法--所有获取网页的动作之后,否则无效。
我试了一下,实际上只需要调用waitForBackgroundJavaScript()方法--此方法阻塞直至所有js运行完毕。并且该方法需要在getPage()方法--所有获取网页的动作之后,否则无效。
发表评论
-
CSS float属性
2012-03-03 15:06 532下面http://www.w3school.com.cn对fl ... -
CSS文集(The CSS Anthology) 第四章 导航菜单栏
2012-02-18 23:38 0【占位符】 -
CSS文集《The CSS Anthology》 第二章 文本格式化及其它基础知识 (2)
2012-02-18 19:46 108911. 为段落文本加高亮 <div> &l ... -
The CSS Anthology 第五章 Tabular Data (表格式数据)
2012-02-15 13:25 0[ PLACEHOLDER ] -
The CSS Anthology 第四章 Navigation导航栏(导航菜单)
2012-02-15 13:24 0[ PLACEHOLDER ] -
CSS文集(The CSS Anthology) 第三章 CSS和图片
2012-02-18 21:07 9411. 为图片加边框 以下CSS中,第一种是以详细方式进行设置, ... -
CSS文集《The CSS Anthology》 第二章 文本格式化及其它基础知识 (1)
2012-02-15 13:25 899第二章 文本格式化及其它基础知识(Text Styling a ... -
Web-Harvest: Set a Proxy Server
2011-06-09 11:36 1088InputSource is = new InputSourc ... -
Beanshell : Setting variables in WebHarvest scripts
2011-06-09 11:34 1829print("sys.isVariableDefin ... -
ExceptionUtils : A very useful class from apache commons
2011-06-09 11:23 902apache.commons.lang Exceptio ... -
调试内嵌的javascript
2011-06-09 11:22 766调试诸如: document.write('<scri ... -
JProfiler : 用JProfiler可以很容易发现Blocked掉的线程。
2011-06-09 11:20 832As title. -
WH : && => &&
2011-06-09 11:12 702<if condition="${ ( ... -
Web-Harvest: variables!!
2011-06-09 11:11 747Getting sized of a list ... -
Spring WebContextApplication
2011-06-09 11:11 666问题: Closing WebContextAppl ... -
Cygwin
2011-06-09 11:10 611在Windows下使用Linux中的常用工具!! -
eclipse : XXX cannot be resolved to a type
2011-06-09 11:09 1168Go to: [Project] \ [Clean.. ... -
GOOD practice : 字符串比较
2011-06-09 11:09 683对于字符串的比较和打印 一定要额外加引号 输出!! -
Spring : 隐藏的依赖
2011-06-09 11:09 639可以在 Bean 定义上加 attribute: &q ... -
Linux : 生成随机密码
2011-06-09 11:08 921生成 6 位随机密码 $ echo `< ...
相关推荐
HTMLUnit是一个强大的Java库,它模拟了一个无头Web浏览器,允许开发者在没有图形用户界面的情况下执行JavaScript和HTML页面。这个库特别适用于自动化测试、数据抓取和其他需要与Web交互的任务,而无需真正打开一个...
HTMLUnit是一个Java库,它提供了一个无头浏览器模拟器,用于自动化Web页面的测试和抓取。这个库的核心功能是能够解析、渲染和执行JavaScript,从而使得开发者可以在没有实际浏览器环境的情况下,对网页进行功能测试...
它使用 Rhino 和 Netty 引擎来处理JavaScript,能够处理AJAX请求和其他基于JavaScript的页面交互。 3. **网页模拟**:HTMLUnit提供了对HTTP请求和响应的模拟,可以设置cookies、管理会话,甚至模拟不同的浏览器和...
- **JavaScript支持**:HTMLUnit内建了 Rhino JavaScript 引擎,可以执行页面中的JavaScript代码,这对于测试网页动态行为至关重要。 - **Ajax支持**:HTMLUnit能够处理异步请求,模拟用户触发的Ajax事件,使...
这些类提供了对DOM树的访问,允许开发者轻松获取或修改网页内容。 在使用HTMLUnit进行网页爬虫开发时,你可以遵循以下步骤: 1. **初始化WebClient**:创建`WebClient`对象,设置适当的配置,如浏览器版本,是否...
3. **DOM操作**:它提供了与DOM相关的API,允许开发者对网页元素进行查找、修改和操作,类似于使用jQuery等库。 4. **异常处理**:HtmlUnit能够捕获并处理网页加载过程中的错误,如JavaScript错误或网络异常,帮助...
HTMLUnit是一个Java库,它提供了一个无头浏览器的模拟,用于自动化Web页面的测试和抓取。这个"giat-htmlunit_test.rar"压缩包显然包含了与使用HTMLUnit进行JavaScript交互和网页抓取相关的代码示例或测试用例。在...
2. **JavaScript支持**:HtmlUnit能执行JavaScript代码,这对于那些依赖JavaScript渲染的网页特别有用。 3. **网络模拟**:它可以发送HTTP请求,处理响应,模拟Cookie和其他HTTP头部信息。 4. **页面交互**:点击...
3. **JavaScript支持**:HtmlUnit能处理JavaScript,所以即使页面依赖于脚本也可以正常工作。 ```csharp webClient.Options.JavaScriptEnabled = true; ``` 4. **网页元素操作**:通过`Page`对象,可以访问HTML元素...
3. **JavaScript支持**:HTMLUnit内置了Rhino JavaScript引擎,允许它执行网页中的JavaScript代码,这对于动态网页的渲染至关重要。 4. **异常处理**:源码中会有各种异常类,用于捕获和处理在模拟浏览器操作时可能...
4. **执行JavaScript**:HTMLUnit可以执行页面上的JavaScript代码,获取或修改页面内容。 ```java String jsResult = page.executeJavaScript("document.title").getReturnValue(); ``` 5. **提交表单**:HTMLUnit...
HTMLUnit是一个无头浏览器,它能够解析HTML、CSS、JavaScript,并执行页面上的脚本。由于它不依赖于图形用户界面,因此特别适合自动化测试和网页抓取。HTMLUnit提供了类似于WebClient的API,使得开发者可以方便地...
3. **处理JavaScript**:HTMLUnit可以执行页面上的JavaScript代码,例如通过`executeScript()`方法执行自定义的JS脚本,获取动态生成的内容。 4. **网页元素操作**:通过DOM接口,可以查找、遍历和修改网页元素,如`...
然而,HTMLUnit也有一些限制,比如对某些复杂的JavaScript库支持有限,以及在处理现代复杂网页时可能遇到的兼容性问题。尽管如此,对于许多简单的自动化任务和测试场景,HTMLUnit仍然是一个高效且实用的工具。
然而,由于它对某些复杂的JavaScript库的支持可能不够完善,对于高度依赖JavaScript的应用,可能需要更强大的工具,如Selenium。 2. **Selenium**: Selenium是一个功能强大的自动化测试工具,也可用于网页爬虫。...
它支持JavaScript,能够执行页面上的脚本,从而进行功能测试和自动化。通过使用HtmlUnit,开发者可以在无需真实浏览器的情况下进行网页应用的测试,大大提高了测试效率和准确性。HtmlUnit2_2_6和HtmlUnit1_4分别代表...
4. 对于动态加载的内容,利用HtmlUnit模拟浏览器行为,执行页面上的JavaScript,确保所有内容都已加载完毕。 5. 使用HtmlUnit的API进一步提取动态生成的数据,如评论、评分等。 6. 整理并存储所获取的所有信息,可能...
除了基础的HTTP请求和HTML解析,还有其他高级话题,如处理JavaScript渲染的页面(可能需要使用如Selenium这样的工具)、反爬虫策略(如设置代理、User-Agent、延迟请求等)、数据存储(如CSV、数据库)以及多线程...
- 动态内容爬取:使用HtmlUnit或Selenium抓取JavaScript渲染后的页面。 - 数据分析:对抓取的数据进行清洗、统计和分析,例如情感分析、关键词提取等。 本套Java网络爬虫资料将涵盖以上所有知识点,通过学习,你...