python解决网站的反爬虫策略

网站的反爬虫策略:

从功能上来讲,爬虫一般分为数据采集,处理,储存三个部分。这里我们只讨论数据采集部分。

一般网站从三个方面反爬虫:用户请求的Headers,用户行为,网站目录和数据加载方式。前两种比较容易遇到,大多数网站都从这些角度来反爬虫。第三种一些应用ajax的网站会采用,这样增大了爬取的难度(防止静态爬虫使用ajax技术动态加载页面)。

1、从用户请求的Headers反爬虫是最常见的反爬虫策略。

  伪装header。很多网站都会对Headers的User-Agent进行检测,还有一部分网站会对Referer进行检测(一些资源网站的防盗链就是检测Referer)。如果遇到了这类反爬虫机制,可以直接在爬虫中添加Headers,将浏览器的User-Agent复制到爬虫的Headers中;或者将Referer值修改为目标网站域名[评论:往往容易被忽略,通过对请求的抓包分析,确定referer,在程序中模拟访问请求头中添加]。对于检测Headers的反爬虫,在爬虫中修改或者添加Headers就能很好的绕过。

2、基于用户行为反爬虫

还有一部分网站是通过检测用户行为,例如同一IP短时间内多次访问同一页面,或者同一账户短时间内多次进行相同操作。[这种防爬,需要有足够多的ip来应对]

(1)、大多数网站都是前一种情况,对于这种情况,使用IP代理就可以解决。可以专门写一个爬虫,爬取网上公开的代理ip,检测后全部保存起来。有了大量代理ip后可以每请求几次更换一个ip,这在requests或者urllib2中很容易做到,这样就能很容易的绕过第一种反爬虫。

爬取代理IP代码:

(2)、对于第二种情况,可以在每次请求后随机间隔几秒再进行下一次请求。有些有逻辑漏洞的网站,可以通过请求几次,退出登录,重新登录,继续请求来绕过同一账号短时间内不能多次进行相同请求的限制。[评论:对于账户做防爬限制,一般难以应对,随机几秒请求也往往可能被封,如果能有多个账户,切换使用,效果更佳]

3、动态页面的反爬虫

上述的几种情况大多都是出现在静态页面,还有一部分网站,我们需要爬取的数据是通过ajax请求得到,或者通过Java生成的。

时间: 2024-09-26 15:39:33

python解决网站的反爬虫策略的相关文章

互联网网站的反爬虫策略浅析

因为搜索引擎的流行,网络爬虫已经成了很普及网络技术,除了专门做搜索的Google,Yahoo,微软,百度以外,几乎每个大型门户网站都有自己的搜索引擎,大大小小叫得出来名字得就几十种,还有各种不知名的几千几万种,对于一个内容型驱动的网站来说,受到网络爬虫的光顾是不可避免的. 一些智能的搜索引擎爬虫的爬取频率比较合理,对网站资源消耗比较少,但是很多糟糕的网络爬虫,对网页爬取能力很差,经常并发几十上百个请求循环重复抓取,这种爬虫对中小型网站往往是毁灭性打击,特别是一些缺乏爬虫编写经验的程序员写出来的爬

反击“猫眼电影”网站的反爬虫策略

0×01 前言 前两天在百家号上看到一篇名为<反击爬虫,前端工程师的脑洞可以有多大?>的文章,文章从多方面结合实际情况列举了包括猫眼电影.美团.去哪儿等大型电商网站的反爬虫机制.的确,如文章所说,对于一张网页,我们往往希望它是结构良好,内容清晰的,这样搜索引擎才能准确地认知它:而反过来,又有一些情景,我们不希望内容能被轻易获取,比方说电商网站的交易额,高等学校网站的题目等.因为这些内容,往往是一个产品的生命线,必须做到有效地保护.这就是爬虫与反爬虫这一话题的由来.本文就以做的较好的"

解决猫眼网反爬虫策略的爬虫

项目代码:Github [目录] 一.引入问题 二.分步实现 1.页面爬取 2.woff下载 3.字体解析规则 一.引入问题 可以看到,猫眼网电影评分,票房等的数据在响应的html中并不是直接提供给你的.这里的xefcf,xef87等数据,是以'特殊符号'的形式显示出来的. 可以发现这里请求了一个woff字体文件,而xefcf,xef87等数据的规则就是在这其中的.所以我们只需要在请求这个网页的同时,截去这部分style,然后获得woff地址,将它下载到本地,进行解析,就可以实现对评分的解密了.

给网站加入优雅的实时反爬虫策略

你的网站内容很有价值,希望被google,百度等正规搜索引擎爬虫收录,却不想让那些无节操的山寨爬虫把你的数据扒走坐享其成.本文将探讨如何在网站中加入优雅的反爬虫策略. [思路] 反爬虫策略要考虑以下几点: 能被google.百度等正规搜索引擎爬虫抓取,不限流量和并发数: 阻止山寨爬虫的抓取: 反爬虫策略应该是实时检测的,而不是通过一段时间后的访问统计分析得出: 误判后的人性化处理(优雅之所在): 大部分的爬虫不是以浏览器方式来访问页面的,爬虫只下载网页的html源代码,不加载包含在页面中的js/

如何给网站加入优雅的反爬虫策略

你的网站内容很有价值,希望被google,百度等正规搜索引擎爬虫收录,却不想让那些无节操的山寨爬虫把你的数据扒走坐享其成.本文将探讨如何在网站中加入优雅的反爬虫策略. [思路] 反爬虫策略要考虑以下几点: 能被google.百度等正规搜索引擎爬虫抓取,不限流量和并发数: 阻止山寨爬虫的抓取: 反爬虫策略应该是实时检测的,而不是通过一段时间后的访问统计分析得出: 误判后的人性化处理(优雅之所在): 大部分的爬虫不是以浏览器方式来访问页面的,爬虫只下载网页的html源代码,不加载包含在页面中的js/

网站反爬虫策略

反爬虫策略,表面上看似乎跟WEB系统优化没有关系,经过分析,发现该策略是可以归到WEB性能优化的系列之中. 通过分析apache日志发现,某系统40%的带宽和服务器资源都消耗在爬虫上,如果除去10%-15%搜索引擎的爬虫,做好反爬虫策略,能节省20%-25%的资源,其实是变向优化了web系统. 一.爬虫请求与正常用户请求的区别 爬虫请求是类似httpClient的机制或curl,wget的命令,用户请求一般走浏览器. 区别:爬虫请求一般不会执行页面里的异步JavaScript操作,而用户请求则执

遇到的反爬虫策略以及解决方法?

通过headers反爬虫:自定义headers,添加网页中的headers数据. 基于用户行为的反爬虫(封IP):可以使用多个代理IP爬取或者将爬取的频率降低. 动态网页反爬虫(JS或者Ajax请求数据):动态网页可以使用 selenium + phantomjs 抓取. 对部分数据加密处理(数据乱码):找到加密方法进行逆向推理. 原文地址:https://www.cnblogs.com/sea-stream/p/11192544.html

玩Python第一次见到这种反爬虫? 咋办? 盘它!

今天在工作中,碰到了第一次碰见的反爬虫机制,感觉很有意思,在这里记录一下,希望对大家有帮助. 今天用到的库: requests [请求]lzstring [解压数据]pyexecjs [执行JS] 简单粗暴,直接上网站部分源代码,因为这个网站应该不太希望别人来爬,所以就不上网站了.为什么这么说,因为刚开始请求的时候,老是给我返回GO TO HELL ,哈哈. 这个网站点击鼠标右键审查元素,查看网页源代码是无法用的,但是这个好像只能防住小白啊,简单的按F12审查元素,CTRL+u 直接查看源代码(

关于反爬虫策略

一.为什么要反爬虫 1.爬虫占总PV比例较高,这样浪费钱(尤其是三月份爬虫). 三月份爬虫是个什么概念呢?每年的三月份我们会迎接一次爬虫高峰期. 最初我们百思不得其解.直到有一次,四月份的时候,我们删除了一个url,然后有个爬虫不断的爬取url,导致大量报错,测试开始找我们麻烦.我们只好特意为这个爬虫发布了一次站点,把删除的url又恢复回去了. 但是当时我们的一个组员表示很不服,说,我们不能干掉爬虫,也就罢了,还要专门为它发布,这实在是太没面子了.于是出了个主意,说:url可以上,但是,绝对不给