Web Scraper 是谷歌 Chrome 浏览器插件,可自动化提取网页数据,实现不敲代码,指哪爬哪的目标,属于居家出行杀人越货之必备神器。

聊聊如何 建立 Sitemap。

Sitemap 是什么呢?简单来说 Sitemap 就是你要抓取数据的网址。

说到这里你会觉得不过就是网址嘛,从浏览器地址栏复制粘贴不就好了?其实没那么简单,你要抓取的数据如果只有 1 页这么操作没啥问题,如果 10 页 1000 页 100000 页呢,这么简单粗暴的搞法会让你生无可恋的。

下面以第 1 课抓取知乎大V陈素封文章前 3 页标题、正文全文、点赞数为例,看下我是如何建立 Sitemap 的。

一、寻找规律

先进入文章页,网址:

https://www.zhihu.com/people/Feat/posts

如上图所示,首页(第一页)网址为:

https://www.zhihu.com/people/Feat/posts

一共 15 页,点击最后一页(第 15 页)看看:

如上图,最后一页(第 15 页)网址为:

https://www.zhihu.com/people/Feat/posts?**page=15**

这时,把网址里面的 15 替换成 1,确认。

如上图,又回到了首页(第一页),但网址变为

https://www.zhihu.com/people/Feat/posts?**page=1**

可以猜测下,第三页网址是啥,没错

https://www.zhihu.com/people/Feat/posts?page=3

此时,可以大胆预测第 n 页的网址为

https://www.zhihu.com/people/Feat/posts?page=n

点击网页下方页码切换页面验证,Bingo,预测成立,666!

二、Sitemap 规则

由《Web Scraper官方文档》可知:抓取存在序列关系的多个 URL 时。使用指定序列比使用 Link 选择器的方式抓取网页更为合适。

规则如下:用指定序列 [1-100] 替代 URL 中页码部分。如页码部分有 0 作为占位符可使用 [001-100]。如页码有固定间隔可使用 [0-100:10]。示例如下:

1)http://example.com/page/[1-100] 可抓取以下网页:

……

……

2)http://example.com/page/[001-100] 可抓取以下网页:

……

……

3)http://example.com/page/[0-100:10] 可抓取以下网页:

……

4)http://example.com/page/[000-100:10] 可抓取以下网页:

……

根据上述规则,要抓取陈素封知乎文章前 3 页,Sitemap 可设置为:

https://www.zhihu.com/people/Feat/posts?page=[1-3]

注意:

1、[m-n]中 m、n只能是数字;

2、[m-n] 未必放在 Sitemap 最后,可能会位于 Sitemap 中部。

3、起始、终止、间隔数字均可改变(示例中起始 1,终止 100,间隔 10 只是为了直观方便)。

示例:

http://example.com/p[010-100:5]/page.html 可抓取以下页面:

……