对小白来说,如果有【需要爬取网站内同类页面固定位置的信息】的需求,比如说:
- 各类排行榜信息(豆瓣/IMDB/……)
- 新闻网站今日要闻
- 批量收集XXXXX信息
web scraper则会是最简单最适合小白的解决方案,通过总结网页结构的规律,可以达到事半功倍的效果。本篇文章是站在非常小白的角度来写的,如果需要更多专业词汇的文章,请参考官方doc。
研究了一下工作原理,网站通常都是由列表页+详情页组成,web scraper就是告诉插件,我需要【网页list】(列表页)中的【ABCDEFG网页】(详情页)【信息1】、【信息2】、【信息3】……【信息N】,能够讲清楚跳转逻辑和抓取逻辑就行了
拿【豆瓣阅读潜力榜】做了个测试,我想要【潜力榜】(列表页)中的【每一本书】(详情页)的【书名】、【作者】、【简介】、【字数】、【阅读数】、【加入书架数】、【标签】,就有了以下操作过程:
Step0:下载并启动Web Scraper
下载这个事情,通过chrome应用下载吧。
如果没办法直接下载,找到【crxdl】这个插件库,搜索【web scraper】,找到这个蜘蛛网图标,再安装吧
启动Web Scraper很简单,按F12,或者网页右击,检查,在导航栏的最邮编,有【web scraper】出现,则表示启动成功
Step1:创建项目
点击【Create new sitemap】,在web scraper中建立一个爬虫项目
Sitemap name - 自己取名,小写字母开头,一般写这个项目是干嘛的
URL - 填写需要爬取的Link,多个link可以后面的加号添加
我这里用的是【豆瓣阅读潜力榜】的网站link,填进去就好,
Step2:配置列表页抓取逻辑
创建好【sitemap】后会自动跳入本项目的.root中,我们需要在这里加入排好的跳转逻辑,告诉网页找完这一页后需要跳转
查看从【潜力榜】到每一本书页面的跳转逻辑,发现是点击【每个书的block】,网页会跳转到书籍详细页面,点击【Add New Selector】创建这个跳转逻辑
填写ID,一般是这个内容具体是啥,我比较喜欢叫这一步为【jump_link】,先填进去
这一步是需要点击每本书进去进一步收集信息的,所以type选link
然后我们来用自带的选择框,来确认【每本书的block】的规律,点击多个书名后,系统会用红框选中,然后在selecting框中显示我们选中内容的规律,点击done即可自动填写到【selector】中
由于这一步是这一本书搜完还要搜集下一本书的内容,所以我们需要多个跳转的,要勾选【Multiple】,并且将【parent selector】选择到.root,即我们一开始的就会先进入到这个页面,做这个操作
Step3:配置详情页抓取逻辑
接下来,我们就需要看跳转网页后,我们需要的信息如何抓取了
首先,我们需要【书名】,点击【Add new selector】,创建一个针对书名的抓取器
ID老规矩,写清楚防止以后忘了,我这一步就叫【book_name】,
这次我们抓取的是书名这个字段即可,type选择text
由于书名在每一页上是唯一的,不太好利用多次点击同类再让插件帮我们找规律,我比较推荐用chrome选择小工具,帮我们找到对应的selector。点击当前页面的选择工具,点击点到书名上,在element元素这里已经标注处当前字段的情况,选中这一段,右击,复制,复制selector,把这个内容,粘贴回selector框中,
因为这一步是从上一页中,通过点击对应数目的block跳转过来的,所以parent selector选择回刚才创建的【jump_link】
点击【Save Selector】
同样的,【作者】、【简介】、【字数】、【阅读数】、【加入书架数】、【标签】也是这样找到selector,并且与jump link联系起来,这样,一个简单的爬虫小工具就设置好了。
Step4: 测试爬虫使用情况
设置好细节后,我们可以来测试爬虫是否能用了,
点击【sitemap 项目名】后,选择Scrape,填写完interval和delay后**,**浏览器会自动开始爬取并跳转
点击【refresh】后,可以看到当前已经拿到的信息
在所有信息爬取完后,点击【export data】就可以导出csx或者xlsx格式的数据了
web scraper还有很多高阶功能,它的Selector的type处,也有更多的选择可以玩,想要了解更多,可以:
- 查看doc,非常清晰 【搜索 doc web scraper】
- 学习HTML元素,更系统地学习HTML架构
- 学习正则表达式,更方便地批量选择信息