自动抓取网页数据( WebScraper翻页——控制链接批量数据上篇文章我们爬取了豆瓣电影TOP250 )
优采云 发布时间: 2022-04-06 11:01自动抓取网页数据(
WebScraper翻页——控制链接批量数据上篇文章我们爬取了豆瓣电影TOP250
)
这是简易数据分析系列文章 的第五部分。
原文首发于博客园:Web Scraper Page Turning - Controlling Links to Grab Data
在上一篇文章中,我们爬取了豆瓣电影TOP250排名前25的电影数据。今天我们将对原有的Web Scraper配置做一些小改动,让爬虫可以爬取全部250部电影数据。
前面我们说过,爬虫的本质是寻找规则。这些程序员在设计网页时,肯定会遵循一些规则。当我们找到规则时,我们可以预测它们的行为并实现我们的目标。
今天我们就来寻找豆瓣的规则网站,想办法把所有的数据都抓起来。今天的规则从经常被忽视的 URL 链接开始。
1.链接分析
我们来看看第一页的豆瓣网址链接:
这显然是一个豆瓣电影网站。top250没什么好说的。这是网页内容的第一眼。豆瓣前250电影没话说?后面有一个start=0&filter=。根据英文提示,好像是说filter(过滤器),从0开始(开始)
看第二页的URL链接,前面一样,只是后面的参数变了,变成start=25,从25开始;
我们再看第三页的链接,参数变成start=50,从50开始;
分析3个环节,我们很容易得出规律:
start=0,表示从第 1 部电影开始,放映 1-25 部电影 start=25,表示从第 26 部电影开始,放映 26-50 部电影 start=50,表示从第 51 部电影开始,放映 51 -75部电影...start=225,表示从第226部电影开始,放映226-250部电影
一旦找到规则,就很容易处理,只要技术提供支持。随着深入研究,你会发现Web Scraper的操作并不难,最重要的是要思考的是法治。
2.Web Scraper 控制链接参数翻页
Web Scraper 为这种通过超链接数字分页获取分页数据的网页提供了非常方便的操作,即范围说明符。
比如你要爬取的网页链接是这样的:
可以写[1-3],把链接改成这个,Web Scraper会自动爬取这三个网页的内容。
当然,也可以写成 [1-100],这样会爬取前 100 页。
那么我们之前分析的豆瓣网页呢?不是从 1 递增到 100,而是每跳 25 次 0 -> 25 -> 50 -> 75,怎么办?
其实也很简单。这种情况可以用 [0-100:25] 表示。每25个是一个网页,100/25=4,前4个网页被爬取放到豆瓣电影场景中,我们只需要把链接改成如下:
[0-225:25]&过滤器=
这样,Web Scraper 就会爬取 TOP250 的所有网页。
3.捕获数据
解决了链接问题,接下来就是如何在Web Scraper中修改链接,很简单,鼠标点两下:
1.点击Stiemaps,在新面板点击ID为top250的数据列;
2.进入新面板后,找到Stiemap top250 Tab,点击,然后在下拉菜单中点击Edit metadata;
3.修改原来的URL,图中红框就是区别:
修改超链接后,我们可以重新爬取网页。操作同上,这里简单重复一下:
单击站点地图 top250 下拉菜单中的抓取按钮。在新操作面板的两个输入框中输入 2000。单击开始抓取蓝色按钮开始抓取数据。抓取完成后,点击面板上的刷新蓝色按钮,检测我们抓取的数据。
如果在这里操作并抓取成功,你会发现所有的数据都被抓取了,但是顺序是乱序的。
这里我们不关心顺序,因为这属于数据清洗的内容,而我们现在的话题是数据抓取。先完成相关知识点,再攻克下一个知识点,是比较合理的学习方式。
本期讲的是通过修改超链接来抓取250部电影的名字。下一期我们会讲一些简单易行的内容来换个思路,讲讲Web Scraper如何导入别人写的爬虫文件,导出自己写的爬虫软件。
参考阅读:
简单数据分析04 | 网络爬虫初审--抢豆瓣高分电影