【How To】web scraper - 轻量数据爬取

对小白来说,如果有【需要爬取网站内同类页面固定位置的信息】的需求,比如说:

- 各类排行榜信息(豆瓣/IMDB/……)

- 新闻网站今日要闻

- 批量收集XXXXX信息

web scraper则会是最简单最适合小白的解决方案,通过总结网页结构的规律,可以达到事半功倍的效果。本篇文章是站在非常小白的角度来写的,如果需要更多专业词汇的文章,请参考官方doc。

研究了一下工作原理,网站通常都是由列表页+详情页组成,web scraper就是告诉插件,我需要【网页list】(列表页)中的【ABCDEFG网页】(详情页)【信息1】、【信息2】、【信息3】……【信息N】,能够讲清楚跳转逻辑和抓取逻辑就行了

拿【豆瓣阅读潜力榜】做了个测试,我想要【潜力榜】(列表页)中的【每一本书】(详情页)的【书名】、【作者】、【简介】、【字数】、【阅读数】、【加入书架数】、【标签】,就有了以下操作过程:


Step0:下载并启动Web Scraper

下载这个事情,通过chrome应用下载吧。

如果没办法直接下载,找到【crxdl】这个插件库,搜索【web scraper】,找到这个蜘蛛网图标,再安装吧

Web Scraper图标


启动Web Scraper很简单,按F12,或者网页右击,检查,在导航栏的最邮编,有【web scraper】出现,则表示启动成功


Step1:创建项目

点击【Create new sitemap】,在web scraper中建立一个爬虫项目

创建项目


Sitemap name - 自己取名,小写字母开头,一般写这个项目是干嘛的

URL - 填写需要爬取的Link,多个link可以后面的加号添加

填写name及url,url可添加多个


我这里用的是【豆瓣阅读潜力榜】的网站link,填进去就好,


Step2:配置列表页抓取逻辑

创建好【sitemap】后会自动跳入本项目的.root中,我们需要在这里加入排好的跳转逻辑,告诉网页找完这一页后需要跳转

查看从【潜力榜】到每一本书页面的跳转逻辑,发现是点击【每个书的block】,网页会跳转到书籍详细页面,点击【Add New Selector】创建这个跳转逻辑

添加selector


填写ID,一般是这个内容具体是啥,我比较喜欢叫这一步为【jump_link】,先填进去

这一步是需要点击每本书进去进一步收集信息的,所以type选link

按照顺序1-6来操作


然后我们来用自带的选择框,来确认【每本书的block】的规律,点击多个书名后,系统会用红框选中,然后在selecting框中显示我们选中内容的规律,点击done即可自动填写到【selector】中

由于这一步是这一本书搜完还要搜集下一本书的内容,所以我们需要多个跳转的,要勾选【Multiple】,并且将【parent selector】选择到.root,即我们一开始的就会先进入到这个页面,做这个操作


Step3:配置详情页抓取逻辑

接下来,我们就需要看跳转网页后,我们需要的信息如何抓取了

首先,我们需要【书名】,点击【Add new selector】,创建一个针对书名的抓取器

ID老规矩,写清楚防止以后忘了,我这一步就叫【book_name】,

这次我们抓取的是书名这个字段即可,type选择text

由于书名在每一页上是唯一的,不太好利用多次点击同类再让插件帮我们找规律,我比较推荐用chrome选择小工具,帮我们找到对应的selector。点击当前页面的选择工具,点击点到书名上,在element元素这里已经标注处当前字段的情况,选中这一段,右击,复制,复制selector,把这个内容,粘贴回selector框中,

chrome自带的元素选择工具


因为这一步是从上一页中,通过点击对应数目的block跳转过来的,所以parent selector选择回刚才创建的【jump_link】

点击【Save Selector】

注意parent selectors的选择


同样的,【作者】、【简介】、【字数】、【阅读数】、【加入书架数】、【标签】也是这样找到selector,并且与jump link联系起来,这样,一个简单的爬虫小工具就设置好了。


Step4: 测试爬虫使用情况

设置好细节后,我们可以来测试爬虫是否能用了,

点击【sitemap 项目名】后,选择Scrape,填写完interval和delay后**,**浏览器会自动开始爬取并跳转

开始爬取


点击【refresh】后,可以看到当前已经拿到的信息

实时查看爬取到的信息


在所有信息爬取完后,点击【export data】就可以导出csx或者xlsx格式的数据了

导出数据


web scraper还有很多高阶功能,它的Selector的type处,也有更多的选择可以玩,想要了解更多,可以:

- 查看doc,非常清晰 【搜索 doc web scraper】

- 学习HTML元素,更系统地学习HTML架构

- 学习正则表达式,更方便地批量选择信息

你可能感兴趣的:(【How To】web scraper - 轻量数据爬取)