前言:自从2014年4月大一开始接触Java,7月开始接触网络爬虫至今已经两年的时间,共抓取非同类型网站150余个,其中包括一些超大型网站,比如百度文库,亚马逊,魔方格,学科网等。也在学长五年经验留下来的代码的基础上,整合成一个小型的爬虫框架,主要用于抓取期刊之类的数据型网站,包括元数据抓取和文件下载。在此感谢曾经给我指导方向,帮助我学习的学长们。
关于本系列博文:主要基于Java语言,使用Jsoup解析网页源码,HttpClient模拟请求,MySql数据持久化存储等,包括模拟登陆,数据抓取,代理IP,验证码识别等。
本系列文章原本在CSDN更新(Geekfly的专栏),时隔一年,在此重新拾起来了,打算继续更新,并迁移到简书,后续有将此项目开源的准备。
学习前的准备工作:
1.关于Java基础
此文档主要以Jsoup解析 + mysql数据库存储讲解数据抓取,需要具备一定的Java基础和数据库基础。
由于在实际抓取中经常使用到Java中对String的操作,如indexOf,subString,split,replace等,请重点回顾相关用法及有可能抛出的异常。
对于一些复杂的网站只靠Jsoup解析+String操作远远不够,有时候也需要使用正则表达式,也需要适当了解。
2.关于开发必备软件
开发工具使用Eclipse系列,注意修改工作空间编码为UTF-8。
下载地址:
http://www.eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/mars1
浏览器使用火狐或者谷歌,请自行选择。
火狐浏览器下载地址:
http://download.firefox.com.cn/releases/stub/official/zh-CN/Firefox-latest.exe
谷歌浏览器下载地址:
http://w.x.baidu.com/alading/anquan_soft_down_ub/14744
3.关于Jsoup
解析网页源码使用的是Jsoup,使用前请先查看一下文档学习。
jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。
-- 百度百科
教程网址:http://www.open-open.com/jsoup/(重点)
Jsoup解析网页源码时常用的Element(s)类:http://blog.csdn.net/TMaskBoy/article/details/49076727
4. 关于HttpClient
HttpClient在发送Url请求方面,比Java自带的UrlConnect强大了很多,能实现普通的Get和Post请求,实现Https请求等。另外在文件流下载和代理IP等方面,都比较简单。