前言:
这个系列我分四个部分来分别接触四块知识,最后再串起来:
Java爬虫入门(一)——项目介绍
Java爬虫入门(二)——HttpClient请求
Java爬虫入门(三)——正则表达式
Java爬虫入门(四)——线程池和连接池
Java爬虫入门(五)——缓冲流写入
GitHub地址:
https://github.com/jjc123/Java-Crawler/blob/master/README.md
突然心血来潮想学一下爬虫,本来是打算学python的(学习成本不高),不过既然是搞java的,那就用java好啦,毕竟知识可以复用,而且java的爬虫框架库也不少。
来看个图解 ,相信对爬虫一目了然:
于是开始了爬虫填坑史
网上找了一些java爬虫的资料:
Java使用HttpClient发送Get和Post请求
零基础写Java知乎爬虫之先拿百度首页练练手
java爬虫入门
爬虫一般分三步:
1. 建立网络连接,爬取数据
2. 建立正则表达式规范
3. 使用正则表达式爬取获得的数据
如果数据量比较庞大,可以选择线程池,连接池并发。
先定个小目标吧 :
爬取一个小说网站的小说下载到本地
小说网址:
https://www.bookbao8.com/BookList-c_0-t_2-o_1.html
项目要求:
JAVA爬虫 并发
爬取静态
小说网站的全部小说
数量级过万,理论上可行,不过测试的时候我就测试了100组而已。
涉及的知识:
1. HttpClient请求
2. 连接池并发
3. 线程池并发
4. 正则表达式
5. IO流保存本地文件
为什么选择爬取这一个静态网页呢? 因为:
对于刚入门的菜狗如我,就别想着爬知乎,百度,CSDN了。
因为我发现我爬的百度首页都是看不懂的编码格式,如:
.bdsug .bdsug-direct p{
color:#00c;