前言
web scraper是一个很好用的Chrome爬虫插件,它易学易用,能够满足大部分需求,而且因为是基于浏览器渲染的,所以能回避很多反爬虫问题。另外,web scraper可以多开进程,对于一些反爬严重的网站,爬取速度不输给一些用Python等语言编写的爬虫程序。
网上已经有很好的web scraper教程,比如 田甜:web scraper 入门到精通之路 。
目前的教程已经介绍了如何进行有规律url的多页抓取。例如,我可以使用语法"https://weibo.com/p/1002066728786240/follow?relate=fans&page=[1-5]"作为start url,来爬取北京理工大学微博粉丝列表的前五页信息,而不用输入五次url。
然而,当url没有规律时该怎么办呢?难道要手动一个个输入吗?这样就会很没有效率。本文以爬取微博账号的粉丝列表为案例,讲解一种可行的无规律url的多页爬取方案。
项目描述
我们想做一些社会网络的研究,需要足够的微博用户数据。 为了获取尽可能全的微博用户,通过用户的关注关系进行遍历是一个比较好的爬取思路。
假设我们已经有了1000个种子用户,想继续爬取他们的粉丝来拓展用户量,这时候我们该怎么使用web scraper来达到目的呢?
解决方案
直观的方案就是手动输入这1000个url到插件中,如下图所示,可以一直添加下去。
可以看出,虽然可以使用[1-5]语法来代表多个页面,但是用户ID是无规律的,只能手动输入,仍需要大量人工。总之,这种方案的效率比较低,而且种子用户的粉丝遍历完后,还要爬粉丝的粉丝,那时候还要手动输入。
为了提高效率,我们可以使用编程语言,基于种子用户的ID来自动生成web scraper的代码,并直接导入进去。导入代码的模块位置在:web scraper → Create new sitemap → Import Sitemap,如下图所示。