写点什么

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

发布于: 2021 年 03 月 03 日
滚动加载的网页只需点 10 下鼠标即可抓取,无编码学爬虫之四

很多网站都是下拉滚动条到底部之后,继续加载数据,尤其是对于很多手机 Web 站点,这种情形更多,使用了 Web Scraper 之后,你会发现这种网站真的好容易好容易抓取,写完就等着数据到来就好了。


**此系列教程涉及图片比较多,学习的时候大量的依赖实操,所以在后续本系列内容将转换为视频载体提供给大家**



缓解一下视疲劳


CSDN 下载网站分析


本次要模拟抓取的网站是 CSDN 下载频道,该页面是下拉到网页底部进行数据的加载。



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


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


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

代码运行之后,发现一个比较大的问题,就是滚动页面一致在爬取数据,爬虫程序停止不了了。


Web Scraper 爬虫停止方式


方式一、断网


如果爬虫运行过程中不想抓了,但是已经抓取到的数据还想保存,那可以进行的操作时断开网络。


  • 如果你是 WiFi ,就关闭无限网络;

  • 如果是有线,就断开有线网卡;


断开网络以后,Web Scraper 监测到网络没有响应,就会主动关闭并将已经抓取下来的数据保存。


不过这个操作显得有那么一丝丝的诡异。


方式二、Network Offline


在打开的爬虫窗口中,点击 F12 调出开发者工具,切换到 Network 视图,勾选 Offline,立即完成断网,Web Scraper 会自动停止抓取。



一定要注意使用开发者工具是在爬取的小窗口里面,不是在你默认的浏览器里面。


方式三、使用 CSS 伪类


这里用到一点点编程的概念了,不过好在解决办法可以算作是一个小技巧,不需要太多的编程知识,很多童鞋都可以掌握。

ElementSelector 后面加上 :nth-of-type(-n+number),如果抓取 100 条数据,则把 number 改为 100,200 条数据则改为 200。


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



CSDN 推荐博客抓取


在使用 CSDN 博客的推荐页时,数据也是滚动加载的,既然是滚动加载,那就可以抓取吖。


按照下图设置好 1,2,3,4,5。

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

爬虫运行之后就可以等着数据存储了,不过我应该是忘记设置抓取多少条数据了,所以就看着浏览器滚啊滚。只能手动停止啦,运行导出数据即可。


导出 Web Scraper


Web Scraper 还有一个比较强大的能力,就是写好的爬虫分享给别人,而且分享方式非常简单,点击下图所示内容。

在出现的页面中,复制爬虫设置,例如刚才写好的爬虫导出的内容如下:


{"_id":"csdn","startUrl":["https://blog.csdn.net/"],"selectors":[{"id":"items","type":"SelectorElementScroll","parentSelectors":["_root"],"selector":"li[data-type='blog']","multiple":true,"delay":"1000"},{"id":"title","type":"SelectorText","parentSelectors":["items"],"selector":"h2 a","multiple":false,"regex":"","delay":0},{"id":"author","type":"SelectorText","parentSelectors":["items"],"selector":".name a","multiple":false,"regex":"","delay":0},{"id":"like","type":"SelectorText","parentSelectors":["items"],"selector":".is_digg span.num","multiple":false,"regex":"","delay":0},{"id":"view","type":"SelectorText","parentSelectors":["items"],"selector":".read_num span.num","multiple":false,"regex":"","delay":0},{"id":"comment","type":"SelectorText","parentSelectors":["items"],"selector":".common_num span.num","multiple":false,"regex":"","delay":0}]}
复制代码


导入 Web Scraper


导入也非常简单,在创建 sitemap 选项卡下选择导入,复制刚才导出的内容,你也可以从网上寻找其它人分享的爬虫。


写在后面


滚动爬取,除了速度有点慢以外,其它都挺好的,一般数据量不大的时候,都可以用这种办法爬取。


**想学 Python 编写语言写爬虫,可以订阅橡皮擦专栏哦~**


🈲🈲🈲🈲 《爬虫百例教程》点击发现惊喜 🈲🈲🈲🈲




博主 ID:梦想橡皮擦,希望大家<font color="red">点赞</font>、<font color="red">评论</font>、<font color="red">收藏</font>。


发布于: 2021 年 03 月 03 日阅读数: 18
用户头像

爬虫 100 例作者,蓝桥签约作者,博客专家 2021.02.06 加入

6 年产品经理+教学经验,3 年互联网项目管理经验; 互联网资深爱好者; 沉迷各种技术无法自拔,导致年龄被困在 25 岁; CSDN 爬虫 100 例作者。 个人公众号“梦想橡皮擦”。

评论

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