http://www.17k.com/chapter/76839/8810097.html
这是17K的一个小说的章节,内容是通过JS加载的,当我们用httpclient去抓取时,因为取得的是原始页面,所以无法获得章节的具体内容。
用HtmlUnit模拟浏览器运行,获得执行后的html页面,然后就可以抓取到想要的具体内容了^_^
public class HtmlUnitTest {
public static void main(String[] args) throws Exception {
// 新建一个WebClient对象,此对象相当于浏览器
final WebClient webClient = new WebClient(BrowserVersion.FIREFOX_3_6);
// 构造一个URL
URL url = new URL("http://www.17k.com/chapter/76839/8810097.html");
// 通过getPage()方法,返回相应的页面
HtmlPage page = (HtmlPage) webClient.getPage(url);
System.out.println(page.getHtmlElementById("chapterContent").asText());
}
}
分享到:
相关推荐
java使用htmlunit工具抓取js中加载的数据.docx
HTMLUnit内建了一个基于WebClient的组件,它能够加载网页、执行JavaScript和处理DOM(文档对象模型)。以下是使用HTMLUnit进行此类操作的基本步骤: 1. **导入库**:在Java项目中,你需要添加HTMLUnit的依赖。如果...
1. **模拟浏览器行为**:HtmlUnit可以加载整个页面,包括执行JavaScript,使得它能够处理那些依赖JavaScript动态加载内容的网站。 2. **DOM操作**:它提供了对HTML文档对象模型(DOM)的访问,允许开发者通过CSS选择...
基于Apache Nutch 1.8和Htmlunit组件,实现对于AJAX加载类型页面的完整页面内容抓取解析。 According to the implementation of Apache Nutch 1.8, we can't get dynamic ...
2. **JavaScript支持**:HTMLUnit能够理解和执行JavaScript代码,这对于测试动态生成的内容或者依赖JavaScript的网站至关重要。它内置了 Rhino 和 Netty JavaScript 引擎,支持ECMAScript 5.1。 3. **DOM操作**:...
总之,HTMLUnit 2.23提供了一个强大且高效的工具,适用于自动化测试和网页抓取,特别是对于那些依赖JavaScript的动态网站。通过理解和熟练使用这个库,开发者可以构建出精确、灵活的网页数据提取系统。
在进行网页抓取时,我们通常会遇到一些挑战,比如验证码、登录验证、动态加载内容等。HTMLUnit、PhantomJS和JBrowserDriver都有各自应对策略。例如,对于动态加载的内容,PhantomJS和JBrowserDriver可以等待特定元素...
4. 对于动态加载的内容,利用HtmlUnit模拟浏览器行为,执行页面上的JavaScript,确保所有内容都已加载完毕。 5. 使用HtmlUnit的API进一步提取动态生成的数据,如评论、评分等。 6. 整理并存储所获取的所有信息,可能...
这对于自动化测试和网页抓取至关重要,因为许多现代网页依赖JavaScript来动态加载内容。 3. **WebClient**:HTMLUnit的核心组件WebClient提供了与网页交互的接口。你可以使用它来发送HTTP请求,接收响应,模拟用户...
总结来说,"htmlunit爬取数据转储excel"项目展示了如何利用HTMLUnit抓取网页信息,并通过Java和Apache POI将数据保存到Excel文件中,为数据处理和分析提供了便利。这是一次实用的Web抓取和数据存储实践,对于需要...
HTMLUnit支持JavaScript,这意味着它可以运行网页中的脚本,这对于那些依赖JavaScript动态加载内容的网站尤其重要。通过调用`executeJavaScript()`方法,可以执行任意的JavaScript代码并获取结果。 4. **数据提取*...
HTMLUnit是一款功能强大的Java库,它模拟了一个无头Web浏览器,允许开发者在没有真实浏览器环境的情况下执行JavaScript,处理Ajax请求,以及与网页进行交互。这个库对于自动化测试、数据抓取和网页爬虫项目非常有用...
2. 数据抓取:爬虫开发者可以利用HTMLUnit加载动态生成的网页,执行JavaScript并获取需要的数据。 3. 性能分析:在没有图形界面的环境中,HTMLUnit可以用来测试网页加载和执行速度。 需要注意的是,虽然HTMLUnit在...
- **数据抓取**:HTMLUnit可以用于爬虫程序,特别是那些需要处理JavaScript动态内容的网站。 - **性能测试**:在无GUI环境下,HTMLUnit可以帮助评估网站的性能,例如页面加载速度。 操作HTMLUnit的基本步骤如下: ...
3. **数据提取**:对于需要解析JavaScript生成内容的网站,HTMLUnit能提供便利的数据提取能力。 三、API使用示例 1. **创建WebClient**: ```java WebClient webClient = new WebClient(); ``` 2. **设置...
HTMLUnit是一个Java库,模拟一个无头Web浏览器,主要用于自动化测试和网页抓取。它能够解析HTML、执行JavaScript,并返回用户可以操作的DOM元素。在Java应用中使用HTMLUnit,通常需要依赖一系列的JAR(Java Archive...
7. **htmlunit-core-js-2.8.jar**:这是HTMLUnit的核心组件,包含了JavaScript引擎,使得HTMLUnit能够执行网页中的JavaScript代码,从而动态地加载和渲染页面。 8. **commons-logging-1.1.1.jar**:Apache Commons ...
2. **JavaScript支持**:HTMLUnit不仅解析HTML,还支持执行JavaScript代码,这对于现代Web应用程序的测试至关重要,因为许多功能是通过JavaScript动态加载的。 3. **DOM解析**:HTMLUnit能解析完整的HTML文档并构建...
1. **JavaScript支持**:HTMLUnit不仅解析HTML,还支持执行JavaScript代码,这使得它能够处理那些依赖JavaScript动态加载内容的网页。在2.31版本中,这一功能可能得到了进一步优化,确保了与现代网页的兼容性。 2. ...
1. **JavaScript支持**:HTMLUnit能够执行JavaScript代码,这对于许多动态加载内容的现代网站来说至关重要,因为这些网站的内容往往通过AJAX请求加载。 2. **头信息模拟**:HTMLUnit可以设置各种HTTP头信息,如User...