文档章节

HtmlUnit 网络爬虫 菜鸟的学习笔记(一)

木有芒果
 木有芒果
发布于 2015/08/31 11:19
字数 622
阅读 506
收藏 5
  1. 什么是HtmlUnit

    HtmlUnit是一个开源的浏览器模拟工具,可以方便我们模拟浏览器的行为,例如打开网页,提交表单等,这样我们可以用他来爬网页

    官网下载:http://htmlunit.sourceforge.net/ 

    java API:http://htmlunit.sourceforge.net/apidocs/index.html 

  2. 怎么用HtmlUnit

    (我的IED是idea,用的maven工程)

    在pom文件里导入HtmlUnit的依赖包

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

        主要语法还是比较简单的

        下面是一个小demo

WebClient webClient = new WebClient();
HtmlPage htmlPage = null;
try
{
    htmlPage = webClient.getPage("http://sexy.faceks.com/");
}catch (IOException e)
{
    e.printStackTrace();
}

List<HtmlAnchor> list = (List<HtmlAnchor>)htmlPage.getAnchors();

for (HtmlAnchor htmlAnchor:list)
{
    System.out.println(htmlAnchor.getHrefAttribute());
}

    输出的结果就是这样,把网址里所有<a>标签的href属性打印出来了,这样取出来的网址又可以继续爬,所以就达到爬虫的效果

           

    

    一接触一个新工具,最怕里各种不懂的新语法,新类,我把自己的理解简单说哈,帮助理解,这个HtmlUnit是一个浏览器模拟器,既然是模拟器

        WebClient就相当于浏览器了,所以第一步就new一个浏览器对象

        HtmlPage就相当于具体浏览器里打开的页面吧,所以你可以看到这样的语法,webClient.getPage(),用浏览器对象WebClient根据传参的url来获取一个页面,这样获得的HtmlPage对象就是打开的页面了,然后有这个对象,你就可以为所欲为了,页面所有的标签都可以搞了,我这里demo搞得是HtmlAnchor,表示<a>标签,其他的可以看官网的API,这不一一列举了

        有了这些小语法,把一个网站里所有的图片扒下来还是没问题的,我就把http://sexy.faceks.com/里所有的妹纸图搞下来了,4千多张,图片不好发了,有兴趣的朋友可以自己试一下还是挺好玩的

        但是这种爬法还是比较基础的,没有设计到表单和脚本之类的,之后可能要搞的就是提交表单,搞登陆,比如网上比较多的爬新浪微博,爬淘宝的,后面有机会我再总结,反正自己比较菜,就只有慢慢来搞了,先记录下来,不然以后自己学着学着就忘了





© 著作权归作者所有

木有芒果
粉丝 6
博文 8
码字总数 3341
作品 0
成都
程序员
私信 提问
Nutch-Htmlunit 1.8 发布:基于Apache Nutch和Htmlunit的扩展实现AJAX页面爬虫抓取解析插件

之前提供了一个版本,是直接把plugin形式的源码放到代码库,后来发现有不少人反馈说自己集成到apache nutch中编译或运行,遇到这那的问题。因此这次干脆基于Apache Nutch 1.8源码工程,把所有...

EntDIY
2014/08/08
3.8K
11
模拟浏览器的神器 - HtmlUnit

随着Web的发展,RIA越来越多,JavaScript和Complex AJAX Libraries给网络爬虫带来了极大的挑战,解析页面的时候需要模拟浏览器执行JavaScript才能获得需要的文本内容。 好在有一个Java开源项...

杨尚川
2014/04/04
3.2K
6
基于Apache Nutch和Htmlunit的扩展实现AJAX页面爬虫抓取解析插件

之前提供了一个版本,是直接把plugin形式的源码放到代码库,后来发现有不少人反馈说自己集成到apache nutch中编译或运行,遇到这那的问题。因此这次干脆基于Apache Nutch 1.8源码工程,把所有...

EntDIY
2014/08/07
2.8K
4
HtmlUnit 网络爬虫 菜鸟的学习笔记(二)

这次我以爬新浪微博为例,这个过程太纠结了,参考了好多大神的帖子,不过还是遗留了很多问题,我们慢慢来看,希望大神帮于指正,我的方法暂时来说还是比较挫的 登陆问题 爬新浪微博首先要登陆...

木有芒果
2015/09/01
1K
1
HtmlUnit 2.6发布

HtmlUnit 是 JUnit 的扩展测试框架之一。HtmlUnit 将返回文档模拟成 HTML,这样您便可以直接处理这些文档了。HtmlUnit 使用例如 table、form 等标识符将测试文档作为 HTML 来处理。它同样需要...

红薯
2009/09/07
3.3K
0

没有更多内容

加载失败,请刷新页面

加载更多

总结:ElasticSearch查询

环境:ES2.3.2 地址:xxx:9200 注意动词使用:GET,POST,PUT,DELETE ElasticSearch PK Mysql 我的告警页面,查询条件会status='OK',isalarm=1,时间范围在:2019-03-01 13:45:41 到 2019......

浮躁的码农
24分钟前
3
0
简单的Cloud Toolkit教程,助你秒部署应用程序

1.什么是Cloud Toolkit Cloud Toolkit 是开发者本地 IDE 中的一款插件,可以帮助开发者更高效地开发、测试、诊断并部署应用。通过这个插件,可以==将本地应用一键部署到任意服务器==,甚至部...

small-bug
29分钟前
10
0
Linux系统产生随机数方法

系统环境变量($RANDOM) 范围:0~32767 加密:md5sum 加盐:stu echo $RANDOM echo $RANDOM |md5sum echo "stu$RANDOM" |md5sum |cut -c 8-15 openssl openssl rand -base64 8 时间......

Mustbecool
32分钟前
4
0
【2019年8月】OCP 071认证考试最新版本的考试原题-第14题

Choose two. Examine this SQL statement: UPDATE orders o SET customer_name = (SELECT cust_last_name FROM customers WHERE customer_id=o.customer_id); Which two are true? A) The su......

oschina_5359
40分钟前
3
0
功能测试与非功能测试

根据一份报告,应用程序崩溃导致71%的卸载。迫使用户卸载应用程序的其他原因是页面响应时间,混乱的UI,电池消耗等。这表明功能测试和非功能测试对于交付用户友好型应用程序的重要性。因此,...

八音弦
41分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部