Web Scraper 入门教程(第3课)
Web Scraper 是谷歌 Chrome 浏览器插件,可自动化提取网页数据,实现不敲代码,指哪爬哪的目标,属于居家出行杀人越货之必备神器。
下面开始第 3 课,聊聊如何 建立 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] 可抓取以下网页:
* http://example.com/page/1
* http://example.com/page/2
……
* http://example.com/page/10
* http://example.com/page/11
……
* http://example.com/page/99
* http://example.com/page/100
2)http://example.com/page/[001-100] 可抓取以下网页:
* http://example.com/page/001
* http://example.com/page/002
……
* http://example.com/page/010
* http://example.com/page/011
……
* http://example.com/page/099
* http://example.com/page/100
3)http://example.com/page/[0-100:10] 可抓取以下网页:
* http://example.com/page/0
* http://example.com/page/10
……
* http://example.com/page/90
* http://example.com/page/100
4)http://example.com/page/[000-100:10] 可抓取以下网页:
* http://example.com/page/000
* http://example.com/page/010
……
* http://example.com/page/090
* http://example.com/page/100
根据上述规则,要抓取陈素封知乎文章前 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 可抓取以下页面:
* http://example.com/p010/page.html
* http://example.com/p015/page.html
……
* http://example.com/p095/page.html
* http://example.com/p100/page.html
三、互动问答环节
如下是链家海淀二手房首页、第 2 页、第 100 页截图:
请问:
1、可能还有哪个网址与以下网址指向同一页面?
https://bj.lianjia.com/ershoufang/haidian/
2、如果要抓取 1~50 页数据,应当如何设置 Sitemap?
请自己先尝试下,在公众号回复 wssm 可获得 正确答案 及 各大常见网站 Sitemap 示例(惊喜不经意?意外不意外?而且里面的 Sitemap 列表还会持续更新)。
【福利】在公众号回复 wsdd,可获取我翻译的《Web Scraper 官方文档》最新版 PDF 文档,作为学习参考。
您可能对以下文章也感兴趣: