什么是HtmlUnithtml
HtmlUnit是一个开源的浏览器模拟工具,能够方便咱们模拟浏览器的行为,例如打开网页,提交表单等,这样咱们能够用他来爬网页java
官网下载:http://htmlunit.sourceforge.net/ web
java API:http://htmlunit.sourceforge.net/apidocs/index.html api
怎么用HtmlUnit浏览器
(个人IED是idea,用的maven工程)maven
在pom文件里导入HtmlUnit的依赖包ide
<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属性打印出来了,这样取出来的网址又能够继续爬,因此就达到爬虫的效果url
一接触一个新工具,最怕里各类不懂的新语法,新类,我把本身的理解简单说哈,帮助理解,这个HtmlUnit是一个浏览器模拟器,既然是模拟器
WebClient就至关于浏览器了,因此第一步就new一个浏览器对象
HtmlPage就至关于具体浏览器里打开的页面吧,因此你能够看到这样的语法,webClient.getPage(),用浏览器对象WebClient根据传参的url来获取一个页面,这样得到的HtmlPage对象就是打开的页面了,而后有这个对象,你就能够随心所欲了,页面全部的标签均可以搞了,我这里demo搞得是HtmlAnchor,表示<a>标签,其余的能够看官网的API,这不一一列举了
有了这些小语法,把一个网站里全部的图片扒下来仍是没问题的,我就把http://sexy.faceks.com/里全部的妹纸图搞下来了,4千多张,图片很差发了,有兴趣的朋友能够本身试一下仍是挺好玩的
可是这种爬法仍是比较基础的,没有设计到表单和脚本之类的,以后可能要搞的就是提交表单,搞登录,好比网上比较多的爬新浪微博,爬淘宝的,后面有机会我再总结,反正本身比较菜,就只有慢慢来搞了,先记录下来,否则之后本身学着学着就忘了