天天看点

java爬虫——工具

对于像我这样懒惰的人,治疗的最好方法就是强迫自己做一些事情!有人说过:坚持做一件事情超过21天,就能成为习惯。那么就用写博客这种方式来改变自己的懒惰吧!

今年的10月份气温好像不同于往年,冷的特别早。坐在温暖的工作间,突然有一股强烈的睡意,但是对面的领导就像每天定时叫我起床的闹钟一样使我肆无忌惮的心理有所收敛。那就翻看手机吧,一个博主的爬虫博客吸引了我,抱着死马当活马医的心态(此时的我由于一些文章的影响变得异常急躁,对于自己技术水平的缓慢提升感到失望)读了下去。我并没有想过一口气读完这个系列的博客,但是结果出人意料:在不到三个小时的时间内我居然读完了。首先我非常感谢博主以通俗易懂的方式讲解了爬虫方面的基础知识,使我多年来模糊的知识明朗化;再次我要感谢博主让我明白了作为技术人,整理对于自身技术能理的提升具有重要的意义。那么今天我就整理以下java爬虫中常用的技术。

1)、jsoup

jsoup是一款java的html解析器,可直接解析某个url地址、html文本内容。它提供了一套非常省力的api,可通过dom,css以及类似于jQuery的操作方法来取出和操作数据。

1. 从一个URL,文件或字符串中解析HTML;

2. 使用dom或css选择器来查找、取出数据;

3. 可操作html元素、属性、文本

以上是百科关于jsoup的总结。这彻底颠覆了我之前对jsoup的认识。之前我一直以为jsoup与httpclient有得一比,因为其可以解析一个url。如今看来jsoup的功能可能要比httpclient的功能广,因为其不仅仅可以请求某个url,还可以对请求结果进行解析。关于jsoup的使用,可以参见 jsoup开发指南 。

其他可参考的网站有:

1、jsoup快速入门(https://www.yiibai.com/jsoup/jsoup-quick-start.html)

2、jsoup教程(https://www.sojson.com/tag_jsoup.html)

2)、httpclient

HttpClient是Apache Jakarta Common下的子项目,可以用来提供高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包,并且它支持HTTP协议最新的版本和建议。

HTTP协议可能是现在Internet上使用得最多、最重要的协议了,越来越多的Java应用程序需要直接通过HTTP协议来访问网络资源。虽然在JDK的java net包中已经提供了访问HTTP协议的基本功能,但是对于大部分应用程序来说,JDK库本身提供的功能还不够丰富和灵活。HttpClient是Apache Jakarta Common下的子项目,用来提供高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包,并且它支持HTTP协议最新的版本和建议。HttpClient已经应用在很多的项目中,比如Apache Jakarta上很著名的另外两个开源项目Cactus和HTMLUnit都使用了 HttpClient。现在HttpClient最新版本为HttpClient 4.5 .6(2015-09-11)。

以上关于httpclient的描述均摘自百科。

了解了这个工具的作用,对于开发,还需要研读其帮助文档,具体可参见其官方网站。这里给出一个地址,但不保证可用,具体以最新的搜索结果为准:http://hc.apache.org/

3)、htmlunit

htmlunit 是一款开源的java 页面分析工具,读取页面后,可以有效的使用htmlunit分析页面上的内容。项目可以模拟浏览器运行,被誉为java浏览器的开源实现。是一个没有界面的浏览器,运行速度迅速。是junit的扩展之一。

其采用的是Rhinojs引擎。模拟js运行。通常情况下,该项目用以对页面(包括js)进行测试,实现网页自动化测试。在小型爬虫项目中,这种框架的应用十分常见,可以有效的分析出 dom的标签,并且有效的运行页面上的js以便得到一些需要执行js才能得到的值。

对于这些东西的总结,技术大牛会很不屑一顾,但是个人认为这种总结在个人技术能力的成长中很有必要。还劳烦诸位大神手下留情,口下留情!

继续阅读