在前面的文章中我们讲到了利用web scraper
这款浏览器插件来实现爬虫。但是小伙伴没看懂,故而这篇文章我们深层次的进行讲解。希望对你的学习和工作有所帮助。
单页面信息爬取
这是最基本、也是最简单的爬虫了。即所有想要的信息都在一个页面,没有做分页处理。我们利用web scraper
直接爬就行了。
示例:
爬取B站排行榜中的数据,包括视频标题
作者
播放量
弹幕数
点击Create new sitemap
创建爬虫。
接下来,点击add new selector
创建爬取内容。这里我分别创建了四个,分别对应视频标题
作者
播放量
弹幕数`
配置完成后,点击Scrape
开始爬虫。
爬虫完毕后,导出结果。
导出之后,发现数据比较乱。这是因为对应的四个字段优先级是一样的。怎么解决这个问题呢?
认识容器
web scraper
中提到了容器的概念,这个就好比是html中的div。将页面中相同的div放到同一个容器中。在从容器中读取给个div中的数据。具体做法如下:
点击Create new sitemap
创建容器。type选择Element
接下来,双击容器进入容器。在容器中再次创建所要爬取的字段。
整体结构如下:
最后爬虫效果。
爬取二级页面
如在上诉的案例中,我们只获取到了播放量和弹幕数。在b站中核心的点赞投币数以及收藏数量并没有呈现。而是在二级页面中。
这时,需要我们在第一个页面爬完后,跳转到第二个页面中去爬。具体做法如下:
进入容器,选择title
字段类型为link
。(点击标题 进入二级页面)
双击title
字段,在此字段中分别建立点赞 投币收藏的字段。
最终效果如下
爬取分页信息
在实际中,很多信息都是做了分页的。如我们爬取b站作者所有的视频信息。
爬取有规律的next
按钮。
很多情况下,我们可以通过点击按钮,查询响应请求来观察url
直接的变化规律。如
- 第一页 https://space.bilibili.com/430579369/video?tid=0&
pn=1
&keyword=&order=pubdate 第二页 https://space.bilibili.com/430579369/video?tid=0&
pn=2
&keyword=&order=pubdate
通过观察,我们不难发现通过pn=
来控制按钮的操作,我们对其添加对应的变量就行了。如果总共有十页数据,我们可以设置为pn=[1-10]
示例:爬取逍遥子大表哥
所有视频的播放量。没有规律
对于没有规律的,我们可以通过容器模拟点击进行爬虫。
首先,我们创建爬虫和容器。
接下来创建容器
结构如下:
爬取效果总结
利用
web scraper
完成一些简单的爬虫任务是完全可以的。上手页比较简单,但是对于一些有反爬虫机制的站点,可能会行不通。
4 comments
教程确实不错啊,就是加了2级目录之后速度肯定就不快了,毕竟要打开每一个网页才能获取到点赞投币收藏量 有更快的办法嘛,比如设置爬虫爬取的速度那个地方该怎么调整
我还有一个问题,为什么我这样设置之后爬取出来的数据是从100到1而不是1到100,怎么是反过来的
关注好久了,学习一下
感谢支持