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

  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 网络爬虫 菜鸟的学习笔记(一)       

    

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

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

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

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

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





你可能感兴趣的:(HtmlUnit 网络爬虫 菜鸟的学习笔记(一))