在前面的文章中我们讲到了利用web scraper这款浏览器插件来实现爬虫。但是小伙伴没看懂,故而这篇文章我们深层次的进行讲解。希望对你的学习和工作有所帮助。

单页面信息爬取

这是最基本、也是最简单的爬虫了。即所有想要的信息都在一个页面,没有做分页处理。我们利用web scraper直接爬就行了。
示例:
爬取B站排行榜中的数据,包括视频标题 作者 播放量 弹幕数
所有数据都在一页
点击Create new sitemap创建爬虫。
创建爬虫
接下来,点击add new selector创建爬取内容。这里我分别创建了四个,分别对应视频标题 作者 播放量 弹幕数`

配置完成后,点击Scrape开始爬虫。

爬虫完毕后,导出结果。
发现数据优点乱
导出之后,发现数据比较乱。这是因为对应的四个字段优先级是一样的。怎么解决这个问题呢?

认识容器

web scraper中提到了容器的概念,这个就好比是html中的div。将页面中相同的div放到同一个容器中。在从容器中读取给个div中的数据。具体做法如下:

点击Create new sitemap创建容器。type选择Element
选择相同区域的div
接下来,双击容器进入容器。在容器中再次创建所要爬取的字段。


整体结构如下:

最后爬虫效果。

爬取二级页面

如在上诉的案例中,我们只获取到了播放量和弹幕数。在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]
    示例:爬取逍遥子大表哥所有视频的播放量。
    创建爬虫 注意url
    效果如下

    没有规律

    对于没有规律的,我们可以通过容器模拟点击进行爬虫。
    通过模拟点击下一页按钮来跳转下一页
    首先,我们创建爬虫和容器。

    接下来创建容器

    结构如下:

    爬取效果

    总结

    利用web scraper完成一些简单的爬虫任务是完全可以的。上手页比较简单,但是对于一些有反爬虫机制的站点,可能会行不通。

Kali笔记一键关注
Last modification:November 3, 2023
正在沿街乞讨中……