反爬机制及反反爬策略

1、UA检测

UA,即 User-Agent,是HTTP请求头部信息的一个属性,它是用户访问网站时的浏览器标识,可以通过审查元素或者开发者工具中看到。一些网站通过检测UA从而确定请求的对象是脚本程序还是正常的用户通过浏览器请求,实现反爬虫的目的。

反反爬策略:构造自己的UA池,使得每次用程序向网站发请求时都随机带上正常的UA标识,更好的模拟浏览器行为。有些网站还会有反爬时间或者频率的限制,因此,最好可以再设置一个 timeout ,最好是随机休眠,Python中可以使用 time.sleep() 进行设置。

 2、IP限制

一些网站会根据你请求的IP地址的频率和次数来进行反爬。如果你同样的IP地址在短时间内对一个网站频繁的进行访问,那么服务器有可能在一段时间内会禁止这个IP地址进行访问。

反反爬策略:构造自己的IP代理池,然后每次发起请求时都从池中随机选择一个IP地址。比如:可以去西刺代理寻找一些IP地址构造代理池。

3、验证码反爬

这个是一种非常有效的反爬机制,现在的验证码也变得越来越复杂,各种花样很多,想写个脚本去识别验证码那还真不是一件简单的事情。

反反爬策略:这个能怎么样呢,简单的验证码可以通过云打码这个平台上提供的接口进行编码识别,试了一下,还不错,收费也不贵,但是一些比较复杂的验证码就不知道怎么样了,实在不行,还是用手输入吧

4、Ajax动态加载

有些网页直接用它的URL抓取不到数据,这时候,就很有可能是Ajax动态加载的了。它的原理是利用网页的URL加载网页的源代码之后,会先在浏览器中执行JavaScript程序,这些程序会加载除更多的内容,并把加载出的内容传输到网页中。

反反爬策略:利用审查元素或者开发者工具查看网页数据的XHR类型的URL,并向这个XHR类型的URL发起请求就可以拿到对应的数据了。

5、cookie限制

cookie是服务器在用户浏览器设置的请求头部信息,当浏览器发起请求时,如果存在cookie,就一定会携带。服务器会检测cookie是否是之前设置的cookie实现反爬。

反反爬策略:在请求头部信息中带上相应的cookie信息,利用Python的requests模块发请求时,可以使用requests.session自动处理cookie。

原文地址:https://www.cnblogs.com/andrew3/p/12693288.html

时间: 2024-11-01 01:57:22

反爬机制及反反爬策略的相关文章

常见的反爬机制及应对策略

1.Headers: 从用户的headers进行反爬是最常见的反爬策略,Headers是一种最常见的反爬机制Headers是一种区分浏览器行为和机器行为中最简单的方法,还有一些网站会对Referer (上级链接)进行检测 从而实现爬虫. 相应的解决措施:通过审查元素或者开发者工具获取相应的headers 然后把相应的headers 传输给python 的requests,这样就能很好地绕过. 2.IP 限制 一些网站会根据你的IP 地址访问的频率,次数进行反爬.也就是说如果你用单一的IP 地址访

Python爬虫|深入请求(四)常见的反爬机制以及应对方法

作者:David Qian 链接:https://zhuanlan.zhihu.com/p/21558661 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 大家好!我是厦门大学王亚南经济研究院的大一学生,今天将由我来为大家介绍一下常见的反爬机制以及应对方法. 注:非商业转载注明作者即可,商业转载请联系作者授权并支付稿费.本人已授权"维权骑士"网站(http://rightknights.com)对我在知乎发布文章的版权侵权行为进行追究与维权. ---

Python爬虫实践 —— 1.对反爬机制的认识

51zxw发布了一个新课程,是今年二月份的,现在总算是辞职空下来时间了,想着学习下爬虫吧,反正学了也不亏.爬虫算是最简单的东西了,爬虫背靠数据挖掘.数据分析和机器学习,与大数据和AI相比显得没那么高大上,随便一个程序员都能写一个的小爬虫.可是,在数据封锁隐藏,反爬机制不断深入的今天,如何设计爬虫分布式运行架构.有效高匿的代理池.反封号防屏蔽.清洗存储有效数据.优化爬取策略.结合大数据技术,更有效率有质量地获取数据等等云云,也不是看似那么简单.因为当今世纪,数据即是一切,小小爬虫,一定程度上成为了

python爬虫---CrawlSpider实现的全站数据的爬取,分布式,增量式,所有的反爬机制

CrawlSpider实现的全站数据的爬取 新建一个工程 cd 工程 创建爬虫文件:scrapy genspider -t crawl spiderName www.xxx.com 连接提取器LinkExtractor 可以根据指定的规则对指定的连接进行提取 提取的规则就是构造方法中的allow('正则表达式')参数决定 规则解析器Rule 可以将将连接提取器提取到的连接进行请求发送,可以根据指定的规则(callback)对请求到的数据进行解析 follow=True:将连接提取器 继续作用到

爬虫与反爬虫的较量-图片反爬

前言 在去年6月吧,刚转行做爬虫的时候,经常拿图片网还有小说网练手,无意中发现一个壁纸网站叫做娟娟壁纸网,有好多高清壁纸(这不是广告,哈哈) 当时是写了全站爬取的代码.以为自己大工告成的时候,结果刚运行,就发现爬出来的图片不对. 每张图片都是这样,我以为遇到了IP限制,于是使用代理,结果仍然是失败. 难道是请求头做了限制?好,那我全部带上.结果依旧失败. 当时也是忙于找工作,也没静下心来仔细想,今天回过头来继续盘它. 虽然最后巧妙的用了get请求爬取成功,但是还是没搞明白原图反爬的原因. 下面来

reuqest模块及UA反扒机制

requests模块 爬虫中一个基于网络请求的模块 pip install requests 作用:模拟浏览器发起请求 编码流程: 1 . 指定url 2 . 发起请求 3 . 获取响应数据(爬取到的页面源码数据) 4 . 进行持久化存储 简单例子: #指定爬取的url (以搜狗为例) url = "https://www.sogou.com" # 发起请求get方法返回值为响应对象 response = requests.get(url=url) #获取响应数据,由于是对象,所以你需

如何解决单IP被封后的反扒机制

单IP频繁爬取某网站,很容易被网站的反爬虫机制封掉IP,如何突破限制呢,答案是多IP爬虫.通过多IP爬虫,又分为以下几种形式: 1.通过ADSL拨号换IP.每拨一次就会有一个新IP,较好解决IP单一问题. 2.如果是局域网,带路由器的,第一种方法可能不好用.这个时候可以模拟登陆路由器,控制路由器重新拨号,换IP,这其实是一种折中的办法,曲线救国. 3.代理IP,利用购买的或者网上抓取的免费代理IP,实现多IP爬虫,这种形式是最常见的. 4.分布式爬虫.采用多个服务器,多个IP,多个slave爬虫

反爬虫机制(一)

爬虫用久了,总是会被封的.——鲁迅 有些网站,特别是一些陈年老站,没有做过反爬虫机制的,我们可以尽情地爬,愉快地爬,把它们的底裤..数据全都爬下来.最多出于情怀考虑,我们爬慢一点,不给它的服务器太大压力.但是对于有反爬虫机制的网站,我们不能这样. U-A校验 最简单的反爬虫机制应该是U-A校验了.浏览器在发送请求的时候,会附带一部分浏览器及当前系统环境的参数给服务器,这部分数据放在HTTP请求的header部分. 我们要做的就是通过requests库设置我们的爬虫U-A.一般来说第三方库发送请求

【爬虫】关于企业信用信息公示系统-加速乐最新反爬虫机制

( ̄▽ ̄)~*又得半夜修仙了,作为一个爬虫小白,花了3天时间写好的程序,才跑了一个月目标网站就更新了,是有点悲催,还是要只有一天的时间重构. 升级后网站的层次结构并没有太多变化,表面上是国家企业信用信息公示系统 的验证码又升级了.之前是 点按后滑动拼图方式: 现在的验证码主要是按顺序点击图片汉字验证码,但也不排除会出现以前的点按拖动验证码: 验证码的破解这里就不详细介绍了,需要的可以私信我们一起讨论研究下,详细可参考极验验证码破解-源码+破解手册,极验二代和三代验证码破解的方式基本都是一个套路的