使用webmagic进行爬虫练习
1.网络爬虫
搜索引擎是基于爬虫的。
百度、谷歌,搜索引擎把网页抓过来,形成数据库,搜索是在自己的数据库中搜索的。搜索引擎就是基于网络爬虫的,爬虫也叫蜘蛛,也叫网络蜘蛛。
还有其他小的应用也是基于爬虫的,比如今日头条,最开始是从各个新闻网站上搜集新闻,搜集后重新定位、排序、推送用户。还有天眼查、企查查、启信宝、是工信部开源的数据,也是爬虫获得的。还有自动抢票的软件,也是通过爬虫实现模拟登陆和抢票操作。
2.爬虫一般步骤
1.首先整个网页都抓取下来;
2.分析网页的结构,一般网页的结构都是一样的。
3.整个网站都爬下来:分析链接的环节,通过正则表达式获取页面进一步爬取的链接。
3.可用的纯java爬虫技术
webmagic 国人开发的一款爬虫,基于纯java,模仿python中成熟的爬虫技术。可以取maven仓库中找到它的依赖。先配置入口页面,要分析查看全文的链接,去链接中找到全文。可查看webmagic的文档查看基本功能和操作方法。
4.练习
练习:爬取笑话,网站:xiaohua.zol.com.cn//lengxiaohua/ 大概是1700多条
自己建立数据表,字段可以有:title content isdelet id 创建时间 等
5.相关API
得到的是Page
page.getHtml() 获取html中的dom树
.links() 获取到所有的链接,然后用正则表达式 .*(/detail/ \d+ /.*\html).*
捕获分组 。括号括起来谁就是捕获谁的分组。正则中:\.表示.
page.css(".content",text)css选择器,里面可以有两个参数。
List<String> list01 = Page.getHtml().links().regex(.*(/detail/ \d+ /.*\html).*).all();
// 例如得到的是:/detail20/12598.html
// 然后需要自己拼域名
// http://xiaohua.zol.com.cn/detail20/12598.html
list01.streams().map(s->"http://xiaohua.zol.com.cn"+s);
// 然后把完整的域名给下一个爬虫,用css选择器选择
6.君子协议
在根目录下有一个robots.txt文件,打开后,网站上哪些数据不允许爬。用作商用需注意。