`

java浏览器之HtmlUnit爬虫框架

 
阅读更多
htmlunit 是一款开源的java 页面分析工具,读取页面后,可以有效的使用htmlunit分析页面上的内容。项目可以模拟浏览器运行,被誉为java浏览器的开源实现。是一个没有界面的浏览器,
采用的是Rhinojs引擎,模拟js运行。相比httpClient+jsoup而言htmlUnit更强大。

pom.xml

<dependency>
<groupId>net.sourceforge.htmlunit</groupId>
<artifactId>htmlunit</artifactId>
<version>2.26</version>
</dependency>
引入htmlUnit.


简单测试:

public class TestHtmlUnit {
	public static void main(String[] args) {
		Set<String> urls=getPageUrls();
		if(null!=urls && urls.size() > 0){
			for (String url : urls) {
				System.out.println(url);
			}
		}
	}
	
	/**
	 * 获取uc-搞笑 最新推荐的视屏页面地址
	 * @return Set<String>
	 */
	public static Set<String> getPageUrls(){
		Set<String> set = new HashSet<String>();
		String base="https://news.uc.cn";
		WebClient webClient = new WebClient(BrowserVersion.FIREFOX_52);//实例化客户端(火狐浏览器)
		String targurl="https://news.uc.cn/c_shipin/";
		webClient.getOptions().setJavaScriptEnabled(false);//关闭javaScript
		//webClient.getOptions().setCssEnabled(false);//关闭css
		try {
			HtmlPage page=webClient.getPage(targurl);
			try {
				Thread.sleep(2000);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
			List<HtmlDivision> divs=page.getByXPath("//div[@class='news-list']");
			HtmlDivision div=divs.get(0);
			List<HtmlListItem> lis=div.getByXPath("//li[@class='news-item flag']");
			if(null!=lis && lis.size()>0){
				for (HtmlListItem li : lis) {
					DomNodeList<HtmlElement> as=li.getElementsByTagName("a");
					if(null!=as && as.size() > 0){
						HtmlElement a=as.get(0);
						String href=a.getAttribute("href");
						if(null!=href && !href.equals("")){
							href=base+href;
							System.out.println(href);
							set.add(href);
						}
					}
				}
			}
		} catch (FailingHttpStatusCodeException e) {
			e.printStackTrace();
		} catch (MalformedURLException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}finally{
			webClient.close();
		}
		return set;
	}

}

分享到:
评论

相关推荐

    htmlunit爬虫.rar

    10. **爬虫框架的应用**:除了HTMLUnit,项目可能还结合了其他Java爬虫框架,如Jsoup或Apache HttpClient,以增强爬虫的功能和易用性。 通过学习和实践这个“htmlunit爬虫”项目,你将能够深入理解HTMLUnit的工作...

    htmlunit-2.30核心文件

    4. **易于集成**:HTMLUnit是一个Java库,可以直接导入到Java项目中,与其他Java工具和框架(如Spring、JUnit等)无缝配合。 5. **API友好**:HTMLUnit提供了丰富的API,使得开发者可以方便地模拟用户的点击、填写...

    java爬虫爬取数据

    HtmlUnit是一个无头(headless)的Java浏览器,它可以模拟真实浏览器的行为,执行JavaScript,加载动态内容,甚至处理cookies和表单提交。这对于爬取依赖JavaScript渲染或者需要登录才能访问的网站非常有用。 在...

    Java开源的网络爬虫

    8. **爬虫框架**:开源的Java爬虫可能基于如Apache Nutch、WebMagic、Colt等成熟框架,这些框架提供了便捷的API和预处理功能,简化了开发流程。 9. **数据存储**:抓取的数据通常需要持久化存储,可能涉及数据库...

    htmlunit-2.19-bin

    6. **使用场景**:HTMLUnit常用于单元测试,集成测试,网页自动化,比如爬虫,或者任何需要模拟浏览器行为但又不希望启动实际浏览器的场合。它可以大大减少测试时间和资源消耗。 7. **与其他工具的集成**:HTMLUnit...

    java网络爬虫搜索引擎

    为了简化开发,许多Java爬虫框架应运而生,如Jsoup-Connector、WebMagic、Colly等。这些框架集成了上述技术,提供了一套完整的解决方案,使得开发者可以专注于业务逻辑,而不是底层实现。 总结来说,Java网络爬虫...

    Java_Programming网络爬虫源码.zip

    - **WebMagic**:一个Java爬虫框架,提供了完整的爬虫生命周期管理,包括PageModel、PageProcessor等概念。 4. **数据存储**: - **文件系统**:将抓取的数据保存为文件,如CSV或JSON格式。 - **数据库**:如...

    htmlUnit所需jar包

    HTMLUnit是一个Java库,它提供了一个无头浏览器模拟器,用于自动化Web页面的导航和交互。这个库在测试、数据抓取以及不需图形用户界面的场景中非常有用。"htmlUnit所需jar包"的标题表明这是一个包含HTMLUnit运行所需...

    Java网络爬虫(蜘蛛)源码

    这款开源的Java网络爬虫源代码提供了实现这一功能的基础框架。 首先,我们要理解网络爬虫的基本工作原理。网络爬虫通过模拟浏览器发送HTTP请求到目标网站,获取响应的HTML内容。这些内容然后被解析,提取出需要的...

    java爬虫Demo

    常见的Java爬虫框架有Jsoup、HtmlUnit、Apache HttpClient、WebMagic等,它们提供了便捷的API来解析HTML和执行HTTP请求。 1. Jsoup:这是一个非常流行且易于使用的Java库,用于处理实际世界中的HTML。它提供了强大...

    htmlunit用到的jar包

    HTMLUnit是一个Java库,它提供了一个无头浏览器模拟器,用于自动化Web页面的测试和抓取。这个库允许开发者在不依赖于实际图形用户界面(GUI)的情况下与HTML页面进行交互,例如点击链接、填写表单和执行JavaScript。...

    htmlunit源码

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

    java网络爬虫+数据库+jsp+搜索引擎.rar.rar

    Java网络爬虫、数据库、JSP以及搜索引擎是四个紧密关联的IT技术领域,它们共同构建了一个数据抓取、存储、展示和检索的完整系统。在这个系统中,Java网络爬虫负责从互联网上自动抓取信息,数据库用于存储这些信息,...

    giant-htmlunit_test.rar

    在爬虫开发中,HTMLUnit的强大之处在于它能够处理复杂的网页逻辑,包括登录、表单提交、Ajax请求等。通过模拟用户行为,你可以获取到动态加载的内容。然而,值得注意的是,虽然HTMLUnit在处理大多数JavaScript时表现...

    java爬虫所需要的包

    3. HtmlUnit:如果你需要模拟浏览器行为,如执行JavaScript,HtmlUnit是一个无头浏览器库,它可以让你在Java代码中执行网页交互。 4. Apache Commons IO:这个库提供了各种IO操作的工具类,对于处理文件输入输出,...

    java编写的爬虫demo

    8. **爬虫框架**:除了基础的Java库,还有现成的爬虫框架,如WebMagic、Colly等,它们提供了一套完整的爬虫构建框架,简化了开发过程。 9. **多级页面抓取**:一个完整的爬虫不仅限于抓取单个页面,还可能需要跟踪...

    java爬取亚马逊的Iphone信息.zip

    4. 爬虫框架:为了提高代码的可读性和可维护性,开发者可能会使用像Crawler4j或Nutch这样的Java爬虫框架。这些框架提供了高级抽象,帮助开发者快速搭建和管理爬虫项目。 5. 数据存储:爬取到的数据通常需要存储起来...

    htmlunit-2.26-bin

    HTMLUnit是一个Java库,模拟一个无头Web浏览器,主要用于自动化测试和网页抓取。它能够解析HTML、执行JavaScript,并与页面上的元素进行交互,而无需实际的图形用户界面。这个"htmlunit-2.26-bin"压缩包包含了...

    基于Apache Nutch和Htmlunit的扩展实现AJAX页面爬虫抓取解析插件.zip

    Apache Nutch是一个开源的网络爬虫框架,而Htmlunit是一个无头Java浏览器,能够模拟真实浏览器执行JavaScript,这使得它们成为处理动态内容的理想工具。 **Apache Nutch详解** Apache Nutch是大数据领域中的一个...

Global site tag (gtag.js) - Google Analytics