基于SCRAPY框架的网络爬虫封锁技术破解研究
2020-04-27陈辉
陈辉
摘 要
本文阐述了网络爬虫及封锁网络爬虫最常用的四种技术:时间间隔封锁,Cookie封锁,User-Agent封锁,IP封锁;分析了上述封锁技术的基本原理,提出了针对上述封锁技术的破解方法,并给出了基于Scrapy框架的破解封锁实现代码。
关键词
Scrapy;网络爬虫;时间间隔封锁;Cookie封锁;User-Agent封锁;IP封锁
中图分类号: TP393.092;TP391.3 文献标识码: A
DOI:10.19694/j.cnki.issn2095-2457 . 2020 . 06 . 82
0 引言
网络爬虫,即网络机器人,是按照一定的规则,自动抓取互联网信息的程序。在各种应用场景中,通过应用网络爬虫技术,网络机器人可以在网站上自动获取相关的专业数据,从而实现快速、准确、完整地获取海量数据,为正确做出各种决策提供数据支持。有关调查研究证明,网络上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 = 5
2 破解Cookie封锁
网站可通过Cookie来确定用户身份,当在同一连续时间段中,多个请求由同一Cookie的用户发起,则可判断为网络爬虫,从而拒绝其访问;因此,可将Cookie禁用,从而网站方无法判断是否为同一用户,以达到破解Cookie封锁。……
