- 什么是HtmlUnit
HtmlUnit是一个开源的浏览器模拟工具,可以方便我们模拟浏览器的行为,例如打开网页,提交表单等,这样我们可以用他来爬网页
- 怎么用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千多张,图片不好发了,有兴趣的朋友可以自己试一下还是挺好玩的
但是这种爬法还是比较基础的,没有设计到表单和脚本之类的,之后可能要搞的就是提交表单,搞登陆,比如网上比较多的爬新浪微博,爬淘宝的,后面有机会我再总结,反正自己比较菜,就只有慢慢来搞了,先记录下来,不然以后自己学着学着就忘了
时间: 2024-11-05 19:30:28