滚动加载的网页只需点 10 下鼠标即可抓取,无编码学爬虫之四

很多网站都是下拉滚动条到底部之后,继续加载数据,尤其是对于很多手机 Web 站点,这种情形更多,使用了 Web Scraper 之后,你会发现这种网站真的好容易好容易抓取,写完就等着数据到来就好了。
**
此系列教程涉及图片比较多,学习的时候大量的依赖实操,所以在后续本系列内容将转换为视频载体提供给大家
**

缓解一下视疲劳
CSDN 下载网站分析
本次要模拟抓取的网站是 CSDN 下载频道,该页面是下拉到网页底部进行数据的加载。

目标数据就是肉眼可视范围内的数据。

写好爬虫基本配置之后,在选择器页面重点设置的是 Type
,选择 Element scroll down
,注意该内容选择之后和 Element
一样,也是选择了一个父级标签。

该内容设置好之后,在设置好子选择器就会对数据进行抓取了,最终的爬虫结构如下图所示。

代码运行之后,发现一个比较大的问题,就是滚动页面一致在爬取数据,爬虫程序停止不了了。
Web Scraper 爬虫停止方式
方式一、断网
如果爬虫运行过程中不想抓了,但是已经抓取到的数据还想保存,那可以进行的操作时断开网络。
如果你是 WiFi ,就关闭无限网络;
如果是有线,就断开有线网卡;
断开网络以后,Web Scraper 监测到网络没有响应,就会主动关闭并将已经抓取下来的数据保存。
不过这个操作显得有那么一丝丝的诡异。
方式二、Network Offline
在打开的爬虫窗口中,点击 F12 调出开发者工具,切换到 Network 视图,勾选 Offline,立即完成断网,Web Scraper 会自动停止抓取。

一定要注意使用开发者工具是在爬取的小窗口里面,不是在你默认的浏览器里面。
方式三、使用 CSS 伪类
这里用到一点点编程的概念了,不过好在解决办法可以算作是一个小技巧,不需要太多的编程知识,很多童鞋都可以掌握。
在 Element
的 Selector
后面加上 :nth-of-type(-n+number)
,如果抓取 100 条数据,则把 number
改为 100,200 条数据则改为 200。

再次运行你的程序,等待数据爬取到本地来吧。运行代码之后,数据保存了 200 条在本地,爬取完成。

CSDN 推荐博客抓取
在使用 CSDN 博客的推荐页时,数据也是滚动加载的,既然是滚动加载,那就可以抓取吖。
按照下图设置好 1,2,3,4,5。

父级选择器设置完毕之后,将子选择器依次添加。最终的爬虫结果如下图所示。

爬虫运行之后就可以等着数据存储了,不过我应该是忘记设置抓取多少条数据了,所以就看着浏览器滚啊滚。只能手动停止啦,运行导出数据即可。
导出 Web Scraper
Web Scraper 还有一个比较强大的能力,就是写好的爬虫分享给别人,而且分享方式非常简单,点击下图所示内容。

在出现的页面中,复制爬虫设置,例如刚才写好的爬虫导出的内容如下:
导入 Web Scraper
导入也非常简单,在创建 sitemap 选项卡下选择导入,复制刚才导出的内容,你也可以从网上寻找其它人分享的爬虫。

写在后面
滚动爬取,除了速度有点慢以外,其它都挺好的,一般数据量不大的时候,都可以用这种办法爬取。
**想学 Python 编写语言写爬虫,可以订阅橡皮擦专栏哦~
**
博主 ID:梦想橡皮擦,希望大家<font color="red">点赞</font>、<font color="red">评论</font>、<font color="red">收藏</font>。
版权声明: 本文为 InfoQ 作者【梦想橡皮擦】的原创文章。
原文链接:【http://xie.infoq.cn/article/b8f69de60ea3f875aec672b5f】。文章转载请联系作者。
评论