在写网络爬虫时最头疼的问题就是网站方采取了种种措施拒绝网络爬虫的访问,写爬虫的开发者需要用各种手段改进网络爬虫, 以更隐蔽的手段来爬取数据。 下面主要说明下在 scrapy 框架下如何突破网站的反爬虫策略, 其它诸如 python 、php、. net 写的爬虫破解原理是一样的。
封锁间隔时间破解
scrapy在两次网页请求之间的时间间隔设置是DOWNLOAD_DELAY,这个值越小,爬取速度越快。 如果不考虑反爬虫因素, 当然设置越小越好。 但只要网站管理员稍微过滤下日志, 就会发现异常, 进而阻止爬虫的访问。 所以如果对爬虫的结果需求不那么急, 那还是把请求时间间隔设置长一点好了。
封锁 cookies 破解
我们知道, 网站是通过cookies来确定用户身份的。 爬虫在爬取数据时持续使用同一个cookies发送请求, 也很容易被管理员发现。 不过破解这种原理的反爬虫很简单, 禁用cookies即可。 如scrapy框架中只需在settings.py中设置: COOKIES_ENABLED = FALSE 。
封锁user-agent破解
user-agent是浏览器的身份标识。 网站会通过user-agent来确定浏览器类型。很多的网站都会拒绝不合标准的user-agent请求网页(上篇文章爬取的快代理网站就用的这种反爬虫策略)。爬虫可以通过headers轻易的冒充浏览器访问。 但如果网站将频繁访问网站的user-agent作为反爬虫标志, 又该怎么办呢? 这种情况下就需要准备一堆的user-agent, 在每次请求网页时随机挑选一个 user-agent就可以了。
封锁IP破解
在反爬虫原理中, 最容易被发现的实际上是IP。 同一IP频繁快速访问网站, 那基本可以确定是爬虫了。 要破解这种反爬虫措施, 最好的方法就是使用代理了。通过我之前的文章获取到代理IP后可以建立一个代理IP池, 每次请求网页前或每间隔一段时间选择一个随机的代理IP。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
长按识别二维码并关注微信
更方便到期提醒、手机管理