零基础学爬虫(四):不规则分页的抓取和反爬虫应对方法
优采云 发布时间: 2022-05-20 23:48零基础学爬虫(四):不规则分页的抓取和反爬虫应对方法
上一篇文章,我们讲到了爬虫的进阶用法()。今天,我们将升级我们的爬虫程序,学习不规则分页的抓取和反爬虫应对方法。小编可以告诉大家,看完这篇文章,大家可以抓取互联网上90%的数据!
一、不规律分页的数据抓取
1.不规律分页分为滚动下拉和需要鼠标点击两种情况。我们先来看滚动下拉的网页,以新浪微博为例,新浪微博的网页版就需要滚动下拉到页面底部然后加载更多内容(如下图)。
2.我们新建一个站点地图,type选择为滚动下拉元素集(Element scroll down),保存以后就可以开始采集新浪微博的数据了。
二、模拟鼠标点击的数据抓取
1.我们以抓取上市公司的公告为例,财经网站雪球的个股页面的“公告”一栏是需要鼠标点击才能切换的,所以要将“公告”的Type类型选择为“Element Click”。新建一个type为Element Click的选择器,随意取个名字叫做“notice click”。首先,我们要让爬虫程序模拟鼠标点击“公告”一栏,点击“Click selector”的“Select”选择鼠标点击的位置,然后将鼠标移动到“公告”上面单击一下,并点击“Done selecting!”保存鼠标点击的位置。然后勾选“Multiple”复选按钮。Click type要选择“Click once”表示鼠标要点击一次即可,Click element uniqueness要选择“unique CSS Selector”,因为我们在雪球个股页面点击“公告”以后网址是没有变化的。
2.设置好以后点击保存,然后创建相关的二级选择器就可以开始抓取上市公司公告文件的下载地址了。
三、网站反爬虫的应对方法
1.很多大型网站都有反爬虫机制,有一些网站不想让你快速获得数据,有一些网站则是为了保证网站服务器的正常运行。总之,大型互联网公司的网站都有强大的反爬虫机制。
2.为了保证我们在抓取数据时能够成功抓取数据不被封IP,我们可以将请求间隔和页面加载延迟的时间分别设置的长一点来应对反爬机制,有些需要鼠标点击和输入验证码的操作我们可以用人工来替代程序,还可以使用定期更换IP等方法。
3.但是,总有一些网站能让大家的“爬虫”失效。比如,我们打开团购网站美团网的某个商品,红色的“团购价”数据是用鼠标无法选中的,旁边的“门店价”则可以被鼠标选中。我们用鼠标在红色的团购价格上面点击右键选择“检查”。
4.我们检查网页的源代码,可以看到红色的团购价显示的是一个图片,我们在旁边的Styles里面找到图片的网址,点击鼠标右键选择“Open in new tab”,在打开的新页面里面可以看到一张“雪碧图”,红色的团购价就是根据网页源代码里面的坐标切割这张雪碧图来显示的数字。
5.为了破解网站的反爬虫机制,我们可以使用浏览器模拟手机打开移动端的网页。我们回到刚刚打开的团购网站页面,将网址“”改为“/XXX”(就是把网址开头的www改为m),或者使用谷歌浏览器通过Ctrl+Shift+M的快捷键进入手机模拟器,打开手机版的美团网。当我们打开单个产品页面可以看到,用鼠标已经可以选中团购价了,这时我们再开始进行数据的抓取。
看完这篇文章,想必大家对网络爬虫程序有了一定的了解。大家想了解更多的话,可以使用“Web Scraper”插件探索更多的使用技巧,也可以尝试自己用python写一个爬虫程序,希望大家都能写出自己想要的网络爬虫程序!
粉丝福利:关注公众号“辰语程序员学习笔记”,在公众号对话框回复关键词“爬虫”,小编给你《用Python写网络爬虫》的下载地址!
-END-
往期回顾