查看原文
其他

Web Scraper 入门教程(第3课)

森淼 风巢 2020-01-07

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

第 1 课内容:抓取案例、抓取流程

第 2 课内容:抓取环境设置


下面开始第 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 文档,作为学习参考。


您可能对以下文章也感兴趣:

1、如何用网络爬虫打造一架印钞机

2、3分钟掌握Excel网络爬虫

3、这3类人已经赚翻了,你还在佛系养蛙?

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存