APP下载

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

2020-04-27陈辉

科技视界 2020年6期

陈辉

摘 要

本文阐述了网络爬虫及封锁网络爬虫最常用的四种技术:时间间隔封锁,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封锁。……

登录APP查看全文