基于SCRAPY框架的网络爬虫封锁技术破解研究

基于SCRAPY框架的网络爬虫封锁技术破解研究陈辉摘要本文阐述了网络爬虫及封锁网络爬虫最常用的四种技术:时间间隔封锁,Cookie封锁,User-Agent封锁,IP封锁;分析了上述封锁技术的基本原理,提出了针对上述封锁技术的破解方法,并给出了基于Scrapy框架的破解封锁实现代码。关键词Scrapy;网络爬虫;时间间隔封锁;Cookie封锁;User-Agent封锁;IP封锁:TP393.092;TP391.3:ADOI:10.19694/j.cnki.issn2095-2457.2020.06.820引言网络爬虫,即网络机器人,是按照一定的规则,自动抓取互联网信息的程序。在各种应用场景中,通过应用网络爬虫技术,网络机器人可以在网站上自动获取相关的专业数据,从而实现快速、准确、完整地获取海量数据,为正确做出各种决策提供数据支持。有关调查研究证明,网络上60%的访问量都来自网络爬虫[1]。对于网站方,网络爬虫占用其过多的资源,并且其未能从爬虫的访问中受益,因此网站方采取多种技术措施拒绝网络爬虫的访问,即封锁网络爬虫。当前,封锁网络爬虫的技术主要有[2]:时间间隔封锁,Cookie封锁,User-Agent封锁,IP封锁等。时间间隔封锁:通过两次网页请求的时间间隔判断访问是否由网络爬虫引发,当时间间隔<0.1秒时,可判断为网络爬虫,从而拒绝其访问;Cookie封锁:网站可通过Cookie来确定用户身份,当一连续网页请求来自同一Cookie时,此时可判断访问由网络爬虫引发,从而拒绝其访问;User-Agent封锁:User-Agent是浏览器的身份标识,通过User-Agent可确定浏览器的类型,网站可将频繁提交请求的User-Agent作为爬虫标志,将其列入黑名单;IP封锁:同一IP短时间连续访问同一站点,如访问数量过大可以判断由网络爬虫引发,从而拒绝其访问。以上为封锁网络爬虫最常用的4种技术,破解上述封锁技术是本文主要解决的问题。本文以网络爬虫Scrapy框架为基础,给出以上4种封锁技术的破解方法及实现代码。1破解时间间隔封锁网站通过两次网页请求的时间间隔判断访问是否由网络爬虫引发,当时间间隔<0.1秒时,可判断为网络爬虫,从而拒绝其访问;因此,可将两次请求的时间间隔放大,從而模拟人访问网页的速度,达到破解时间间隔的限制。在Scrapy框架中,两次网页请求的时间间隔配置为DOWNLOAD_DELAY。因此放大时间间隔的实现代码为,在settings.py中加入代码。DOWN_DOWNLOAD=52破解Cookie封锁网站可通过Cookie来确定用户身份,当在同一连续时间段中,多个请求由同一Cookie的用户发起,则可判断为网络爬虫,从而拒绝其访问;因此,可将Cookie禁用,从而网站方无法判断是否为同一用户,以达到破解Cookie封锁。在Scrapy框架中,启用禁用Cookie的配置为COOKIES_ENABLED。因此放大时间间隔的实现代码为,在settings.py中加入代码。COOKIE_ENABLED=False3破解User-Agent封锁网站可通过User-Agent来确定浏览器的类型,当在同一连续时间段中,多个请求由同一User-Agent的浏览器发起,则可判断为网络爬虫,从而拒绝其访问;因此,网络爬虫可以准备多个User-Agent,发出请求时随机选一个User-Agent使用,以达到破解User-Agent封锁。在Scrapy框架中,为了实现破解User-Agent封锁,需要在settings.py的同级目录创建middlewares模块;在模块中,创建资源文件resource.py和中间件文件customUserAgent.py。resource.py用于存放多个User-Agent;customUserAgent.py用于随机调用不同的User-Agent。资源文件resource.py,将多个浏览器的User-Agent放在列表中,具体实现如下。UserAgents=[“Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.1;SV1;AcooBrowser;.NETCLR1.1.4322;.NETCLR2.0.50727)”,“Mozilla/4.0(compatible;MSIE7.0;WindowsNT6.0;AcooBrowser;SLCC1;.NETCLR2.0.50727;MediaCenterPC5.0)”,“Mozilla/4.0(compatible;MSIE7.0;AOL9.5;AOLBuild4337.35;WindowsNT5.1;.NETCLR1.1.4322)”,“Mozilla/5.0(Windows;U;MSIE9.0;WindowsNT9.0;en-US)”,“Mozilla/5.0(compatible;MSIE9.0;WindowsNT6.0;Trident/4.0;SLCC1;.NETCLR2.0.50727;MediaCenterPC6.0)”,..........“Opera/9.80(Macintosh;IntelMacOSX10.6.8;U;fr)Presto/2.9.168Version/11.52”,]中间件文件...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供参考,付费前请自行鉴别。
3、如文档内容存在侵犯商业秘密、侵犯著作权等,请点击“举报”。

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

客服邮箱:

biganzikefu@outlook.com

所有的文档都被视为“模板”,用于写作参考,下载前须认真查看,确认无误后再购买;

文档大部份都是可以预览的,笔杆子文库无法对文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;

文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为依据;

如果您还有什么不清楚的或需要我们协助,可以联系客服邮箱:

biganzikefu@outlook.com

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

文秘专家
机构认证
内容提供者

1

确认删除?