爬虫反反爬

这篇具有很好参考价值的文章主要介绍了爬虫反反爬。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

为什么要反爬?

经常被反爬的主要人群

常见的反爬策略

通过headers字段来反爬

通过headers中的User-Agent字段来反爬

通过referer字段或者是其他字段来反爬

通过cookie来反爬

通过请求参数来反爬

通过从html静态文件中获取请求数据(github登录数据)

通过发送请求获取请求数据

通过js生成请求参数

通过验证码来反爬

常见基于爬虫行为进行反爬

基于请求频率或总请求数量

根据爬取行为进行反爬,通常在爬取步骤上做分析

常见基于数据加密进行反爬

对响应中含有的数据进行特殊化处理


为什么要反爬?

爬虫反反爬,# python爬虫,爬虫

 爬虫:使用任何技术手段,批量获取网站信息的一种方式。关键在于批量

反爬虫:使用任何技术手段,阻止别人批量获取自己网站信息的一种方式。关键也在于批量

  1. 因爬虫的访问频率过高影响服务器的运行

    1. 影响别人业务

    2. 导致服务器宕机

      单一的DoS攻击一般是采用一对一方式的,它利用网络协议和操作系统的一些缺陷,采用欺骗和伪装的策略来进行网络攻击,使网站服务器充斥大量要求回复的信息,消耗网络带宽或系统资源,导致网络或系统不胜负荷以至于瘫痪而停止提供正常的网络服务。

  2. 公司的劳动果实轻松并拿走

    1. 免费资源被拿走丢失竞争力
    2. 收费资源属于侵权
    3. 数据保护:某些网站拥有独特、有价值的数据,可能是商业机密、用户隐私或其他敏感信息。通过反爬措施,网站可以限制对这些数据的访问,保护数据的安全和完整性。
  3. 商业竞争对象

  4. 服务器流量需要钱!

  5. 起诉浪费时间、钱,还不一定赢!!

  6. 防止滥用:爬虫工具可以自动化地从网站抓取大量数据,如果没有限制,可能导致服务器负载过高、带宽消耗过大,影响网站的正常运行。通过反爬措施,网站可以限制非法的自动化访问,确保服务器资源的合理分配。

  7. 维护公平竞争:某些网站提供了用户互动功能,如在线游戏、投票调查等。通过反爬措施,网站可以避免利用爬虫工具进行刷票、刷数据等作弊行为,维护公平竞争环境。

  8. 遵守服务条款:网站的服务条款和使用协议通常规定了用户对数据的使用限制和授权范围。通过反爬措施,网站可以确保用户在合法范围内使用数据,并防止未经授权的数据获取和使用。

经常被反爬的主要人群

  1. 数据分析师和研究人员:许多数据分析师和研究人员需要从网站上获取数据进行分析、研究和报告撰写。他们可能会受到网站的反爬机制限制,需要寻找方法绕过这些限制以获取所需的数据。

  2. 竞争对手和市场研究者:竞争对手和市场研究者可能对竞争对手的产品、价格、营销策略等进行监测和分析。他们可能会使用爬虫工具来收集相关数据,但网站的反爬机制可能会阻止他们的访问。现在的创业公司越来越多,为了发展公司,需要做不少的分析程序,与分析行为,但是分析是需要数据的。若不想买,就只能写爬虫,为了公司的生死存亡,只能不断的爬取数据

  3. 学术研究者和学生:学术研究者和学生可能需要从网站上获取特定领域的数据用于研究目的。他们可能会遭遇反爬机制的限制,需要找到方法来绕过这些限制以获取数据。

  4. 开发者和技术爱好者:一些开发者和技术爱好者可能对网站的结构、设计和数据交互等感兴趣,他们可能会使用爬虫工具来获取网站数据进行学习和实践。

  5. 十分低级的小白(应届生,刚入行)应届毕业生,与小白的的爬虫通常简单粗暴,根本不管服务器压力,加上人数不可测,很容易被反爬。没错就是我!!

  6. 不小心写错代码,没人停止的爬虫程序不小心写错,进也死循环。再就是部署服务器,无人维护了,依然不停的爬取数据。

  7. 成型的商业对手最主要的对手,往往商业对手既然选择爬取对方的数据,基本都是有技术、钱。如果他们要爬,只能和他们死磕。

常见的反爬策略

通过headers字段来反爬

headers中有很多字段,这些字段都有可能会被对方服务器拿过来进行判断是否为爬虫

通过headers中的User-Agent字段来反爬
  • 反爬原理:爬虫默认情况下没有User-Agent,而是使用模块默认设置
  • 解决方法:请求之前添加User-Agent即可;更好的方式是使用User-Agent池来解决(收集一堆User-Agent的方式,或者是随机生成User-Agent)
通过referer字段或者是其他字段来反爬
  • 反爬原理:爬虫默认情况下不会带上referer字段,服务器端通过判断请求发起的源头,以此判断请求是否合法

  • 解决方法:添加referer字段

    爬虫反反爬,# python爬虫,爬虫

通过cookie来反爬
  • 反爬原理:通过检查cookies来查看发起请求的用户是否具备相应权限,以此来进行反爬
  • 解决方案:进行模拟登陆,成功获取cookies之后在进行数据爬取

爬虫反反爬,# python爬虫,爬虫

通过请求参数来反爬

请求参数的获取方法有很多,向服务器发送请求,很多时候需要携带请求参数,通常服务器端可以通过检查请求参数是否正确来判断是否为爬虫

通过从html静态文件中获取请求数据(github登录数据)
  • 反爬原理:通过增加获取请求参数的难度进行反爬

  • 解决方案:仔细分析抓包得到的每一个包,搞清楚请求之间的联系

    爬虫反反爬,# python爬虫,爬虫

通过发送请求获取请求数据
  • 反爬原因:通过增加获取请求参数的难度进行反爬

  • 解决方案:仔细分析抓包得到的每一个包,搞清楚请求之间的联系,搞清楚请求参数的来源

    爬虫反反爬,# python爬虫,爬虫

通过js生成请求参数
  • 反爬原理:js生成了请求参数
  • 解决方法:分析js,观察加密的实现过程,通过js2py获取js的执行结果,或者使用selenium来实现
通过验证码来反爬
  • 反爬原理:对方服务器通过弹出验证码强制验证用户浏览行为
  • 解决方法:打码平台或者是机器学习的方法识别验证码,其中打码平台廉价易用,更值得推荐

常见基于爬虫行为进行反爬

基于请求频率或总请求数量

爬虫的行为与普通用户有着明显的区别,爬虫的请求频率与请求次数要远高于普通用户

  • 通过请求ip/账号单位时间内总请求数量进行反爬

    • 反爬原理:正常浏览器请求网站,速度不会太快,同一个ip/账号大量请求了对方服务器,有更大的可能性会被识别为爬虫
    • 解决方法:对应的通过购买高质量的ip的方式能够解决问题/购买个多账号
  • 通过同一ip/账号请求之间的间隔进行反爬

    • 反爬原理:正常人操作浏览器浏览网站,请求之间的时间间隔是随机的,而爬虫前后两个请求之间时间间隔通常比较固定同时时间间隔较短,因此可以用来做反爬
    • 解决方法:请求之间进行随机等待,模拟真实用户操作,在添加时间间隔后,为了能够高速获取数据,尽量使用代理池,如果是账号,则将账号请求之间设置随机休眠
根据爬取行为进行反爬,通常在爬取步骤上做分析

通过js实现跳转来反爬

  • 反爬原理:js实现页面跳转,无法在源码中获取下一页url
  • 解决方法: 多次抓包获取条状url,分析规律

通过陷阱获取爬虫ip(或者代理ip),进行反爬

  • 反爬原理:在爬虫获取链接进行请求的过程中,爬虫会根据正则,xpath,css等方式进行后续链接的提取,此时服务器端可以设置一个陷阱url,会被提取规则获取,但是正常用户无法获取,这样就能有效的区分爬虫和正常用户
  • 解决方法: 完成爬虫的编写之后,使用代理批量爬取测试/仔细分析响应内容结构,找出页面中存在的陷阱

通过假数据反爬(投毒)

  • 反爬原理:向返回的响应中添加假数据污染数据库,通常不会被正常用户看到
  • 解决方法: 长期运行,核对数据库中数据同实际页面中数据对应情况,如果存在问题/仔细分析响应内容

阻塞任务队列

  • 反爬原理:通过生成大量垃圾url,从而阻塞任务队列,降低爬虫的实际工作效率
  • 解决方法: 观察运行过程中请求响应状态/仔细分析源码获取垃圾url生成规则,对URL进行过滤

阻塞网络IO

  • 反爬原理:发送请求获取响应的过程实际上就是下载的过程,在任务队列中混入一个大文件的url,当爬虫在进行该请求时将会占用网络io,如果是有多线程则会占用线程
  • 解决方法: 观察爬虫运行状态/多线程对请求线程计时

运维平台综合审计

  • 反爬原理:通过运维平台进行综合管理,通常采用复合型反爬虫策略,多种手段同时使用
  • 解决方法: 仔细观察分析,长期运行测试目标网站,检查数据采集速度,多方面处理

常见基于数据加密进行反爬

对响应中含有的数据进行特殊化处理

通常的特殊化处理主要指的就是css数据偏移/自定义字体/数据加密/数据图片/特殊编码格式等

通过自定义字体来反爬 下图来自猫眼电影电脑版

爬虫反反爬,# python爬虫,爬虫

  • 反爬思路: 使用自有字体文件
  • 解决思路:切换到手机版/解析字体文件进行翻译

通过css来反爬 去哪儿电脑版

爬虫反反爬,# python爬虫,爬虫

  • 反爬思路:源码数据不为真正数据,需要通过css位移才能产生真正数据
  • 解决思路:计算css的偏移

通过js动态生成数据进行反爬

  • 反爬原理:通过js动态生成
  • 解决思路:解析关键js,获得数据生成流程,模拟生成数据

通过数据图片化反爬

  • 解决思路:通过使用图片解析引擎从图片中解析数据

通过编码格式进行反爬

  • 反爬原理: 不适用默认编码格式,在获取响应之后通常爬虫使用utf-8格式进行解码,此时解码结果将会是乱码或者报错
  • 解决思路:根据源码进行多格式解码,或者真正的解码格式

 文章来源地址https://www.toymoban.com/news/detail-544370.html

到了这里,关于爬虫反反爬的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 100天精通Python(实用脚本篇)——第118天:基于selenium和ddddocr库实现反反爬策略之验证码识别

    🔥🔥 本文已收录于 《100天精通Python从入门到就业》:本专栏专门针对零基础和需要进阶提升的同学所准备的一套完整教学,从0到100的不断进阶深入,后续还有实战项目,轻松应对面试,专栏订阅地址:https://blog.csdn.net/yuan2019035055/category_11466020.html 优点 : 订阅限时9.9付费专

    2024年03月19日
    浏览(32)
  • Selenium反反爬

    有时候,我们利用 Selenium 自动化爬取某些网站时,极有可能会遭遇反爬。 实际上,我们使用默认的方式初始化 WebDriver 打开一个网站,下面这段 JS 代码永远为 true,而手动打开目标网站的话,则为:undefined # 通过这段 JS 脚本区分是爬虫还是人工操作 window.navigator.webdriver cdp

    2024年02月12日
    浏览(27)
  • scrapy的反反爬

    解决封锁IP的反爬机制 首先要在setting中设置代理IP池(要确保我们所使用代理IP可用有效!!!) 然后在middlewares.py文件中的process_request方法中是同random选取一个随机的IP,写入到request的meta属性 再次回到setting.py文件中注册并且设置优先级 最后打开spider的爬虫文件在response中获取

    2024年02月11日
    浏览(18)
  • 有反爬机制就爬不了吗?那是你还不知道反反爬,道高一尺魔高一丈啊

    不知道你们在用爬虫爬数据的时候是否有发现,越来越多的网站都有自己的反爬机制,抓取数据已经不像以前那么容易,目前常见的反爬机制主要有以下几种: 数据是通过动态加载的,比如微博,今日头条,b站 需要登录,需要验证码,比如铁路12306,淘宝,京东 请求次数频

    2023年04月12日
    浏览(30)
  • 浅谈非内存对抗类和AI自瞄类FPS作弊程序原理及常用反反作弊措施与反作弊应对手段(中)

    往期文章: 浅谈非内存对抗类和AI自瞄类FPS作弊程序原理及常用反反作弊措施与反作弊应对手段(上)         Kernel-based Virtual Machine的简称,是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中。它使用Linux自身的调度器进行管理,所以相对于

    2024年04月13日
    浏览(26)
  • python爬虫基本功(一)--初识python爬虫与爬虫学习路径

    大家好,这里是Kaiser。👏👏今天想给大家介绍下python爬虫的知识,我将与大家一起去揭开python爬虫的神秘面纱,字不多敲,让我们进入今天的主题:初识python爬虫。 爬虫,又被称为网页蜘蛛,网络机器人,是一种按照一定的规则,自动的抓取万维网信息的程序或脚本,是搜

    2024年02月16日
    浏览(36)
  • 简单实现python爬虫功能(Python爬虫功能)

    这篇文章主要介绍了python实现简单爬虫功能的相关资料,感兴趣的小伙伴们可以参考一下 在我们日常上网浏览网页的时候,经常会看到一些好看的图片,我们就希望把这些图片保存下载,或者用户用来做桌面壁纸,或者用来做设计的素材。 我们最常规的做法就是通过鼠标右

    2024年02月07日
    浏览(42)
  • Python爬虫系列(二)——Python爬虫批量下载百度图片

    1. 前言 先贴代码 如果要使用上述程序的话,需要修改两个地方 : self.directory 这是本地存储地址,修改为自己电脑的地址,另外,**{}**不要删 spider.json_count = 10 这是下载的图像组数,一组有30张图像,10组就是三百张,根据需求下载 也可以去gitee仓库直接下载程序。 关于 py

    2023年04月08日
    浏览(32)
  • Python 爬虫(一):爬虫伪装

    对于一些有一定规模或盈利性质比较强的网站,几乎都会做一些防爬措施,防爬措施一般来说有两种:一种是做身份验证,直接把虫子挡在了门口,另一种是在网站设置各种反爬机制,让虫子知难而返。 我们知道即使是一些规模很小的网站通常也会对来访者的身份做一下检查

    2024年02月05日
    浏览(40)
  • python实现网络爬虫代码_python如何实现网络爬虫

    python实现网络爬虫的方法:1、使用request库中的get方法,请求url的网页内容;2、【find()】和【find_all()】方法可以遍历这个html文件,提取指定信息。 python实现网络爬虫的方法: 第一步:爬取 使用request库中的get方法,请求url的网页内容 编写代码[root@localhost demo]# touch demo.py [

    2024年01月20日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包