1.反爬虫机制

news2024/9/21 0:39:52

一、IP 封锁

网站可以检测请求的IP地址,并封锁那些频繁请求的IP,使其无法访问网站。这是一种常见的反爬虫策略,用于防止单个IP地址对服务器造成过大的负载。

  • 解决办法 : 使用代理IP池以避免IP封锁
    // 待补充

二、请求头检测(User-Agent检测)

通过检查请求头中的User-Agent字段,网站可以识别出请求是否来自常见的浏览器或是一个自动化脚本。如果User-Agent表明请求来自一个爬虫程序,网站可能会拒绝该请求。

当然可以,以下是对这些常见请求头参数及其常见值的注释说明:

  1. Accept: 指定客户端能够处理和希望接收的MIME类型。

    • text/html: 表示客户端可以处理和显示HTML文档。
    • application/json: 表示客户端期望接收JSON格式的数据。
    • application/xml: 表示客户端可以处理XML格式的数据。
    • */*: 表示客户端可以接受任何类型的数据。
      但是在大多数情况下,网站是起到浏览作用的,所以会直接返回到他的源码。
  2. Accept-Encoding: 客户端支持的内容编码方式。

    • gzip: 客户端支持gzip压缩算法。
    • deflate: 客户端支持deflate压缩算法。
    • br: 客户端支持Brotli压缩算法。
      useless
  3. Accept-Language: 客户端希望接收的语言版本。

    • en-US: 客户端希望接收美式英语的内容。
    • zh-CN: 客户端希望接收简体中文的内容。
    • fr: 客户端希望接收法语的内容。
      useless
  4. Cache-Control: 用于指示缓存行为。

    • no-cache: 不使用本地缓存,需要从服务器重新获取数据。
    • max-age=0: 缓存的内容立即过期,需要重新验证。
    • no-store: 不存储任何关于客户端请求或服务器响应的缓存信息。
      useless
  5. Connection: 控制网络连接的行为。

    • keep-alive: 保持连接,以便复用TCP连接发送和接收多个HTTP请求和响应。
    • close: 请求完成后关闭连接。
      useless
  6. Content-Type: 请求体的媒体类型(对于POST, PUT等带有请求体的请求)。

    • application/x-www-form-urlencoded: 发送键值对数据,通常用于HTML表单。
    • multipart/form-data: 发送复杂的表单数据,如文件上传。
    • application/json: 发送JSON格式的数据。
      useless
  7. Cookie: 客户端存储的Cookie信息,用于服务器识别用户。

    • session_id=12345; user_id=abc: 示例Cookie值,包含会话ID和用户ID。
  8. Host: 请求的目标主机名或IP地址。

    • www.example.com: 目标服务器的域名。
  9. Referer: 表示当前请求是从哪个页面发起的。

    • http://www.referrer.com/page: 发起请求的源页面URL。
  10. User-Agent: 标识发送请求的客户端信息,如浏览器版本和操作系统。

    • 浏览器标识字符串: 示例为Chrome浏览器的User-Agent字符串,包含浏览器名称、版本和操作系统信息。

在整个访问头中最重要的内容,在某些反爬网站会使用这一点来判断你是不是使用了爬虫程序进行爬取。

如何获取本地的User_Agent
在这里插入图片描述

当然即使不使用本地 User_Agent 也是可以的,下面给出两个参考例子

Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:129.0) Gecko/20100101 Firefox/129.0


Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0

  1. Authorization: 用于API访问或其他需要身份验证的请求的认证信息。
    • Bearer TOKEN: 使用Bearer令牌进行身份验证,TOKEN是服务器颁发的认证令牌。

解决方式 : 在每次询问的请求头中更新 User_Agent

验证码与人机验证

当网站检测到异常请求模式时,如频繁的访问或来自同一IP的大量请求,它可能会要求用户输入验证码或通过其他形式的人机验证来确认请求者的身份。这可以有效阻止自动化爬虫,因为它们通常无法处理这种验证过程。

其他

  • 频率限制
    • 网站可以设置请求频率的限制,以防止爬虫程序对网站进行过度的访问。如果来自同一IP地址或用户的请求超过了设定的阈值,网站可能会暂时或永久地禁止该IP或用户的访问。
  • 动态页面加载
    • 一些网站使用JavaScript等技术动态加载内容。这种技术对于仅支持静态页面抓取的爬虫程序来说是一个挑战,因为它们无法直接获取到动态加载的内容。
  • 使用robots.txt
    • 虽然robots.txt文件主要用于指导搜索引擎爬虫的行为,但它也可以作为一种简单的反爬虫机制。通过在该文件中指定不允许爬取的URL或路径,网站可以告知遵守该协议的爬虫程序不要访问这些区域。然而,需要注意的是,并非所有爬虫都会遵守robots.txt的规定。
  • 隐藏链接和元素
    • 有些网站会使用CSS或JavaScript来隐藏某些链接或页面元素,以防止爬虫程序轻易地获取到这些信息。这种方法可以增加爬虫程序的解析难度。
  • 分布式拒绝服务(DDoS)防御机制
    • 虽然这不是专门针对爬虫的程序,但一些高级的DDoS防御系统可以识别并阻挡异常流量模式,包括来自爬虫程序的流量。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2070261.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2024百元学生党蓝牙耳机有哪些?甄选四款精品王炸机型推荐

近年来,随着手机的普及和音乐娱乐的盛行,蓝牙耳机成为越来越多人的选择。蓝牙耳机的优点在于无需使用线缆,方便携带,而且可以随时随地享受音乐或者通话。在市面上,有各种各样的蓝牙耳机可供选择,对于预算有…

Star-CCM+探针查看与创建

在实际应用工况中,数值计算结束后为了产看某个点的标量场或矢量场可以采用探针查看。而在软件中可以通过“,”、“。”快捷键进行创建与查看。两者的区别具体如下所示: 鼠标放在要查看部件的位置,同时点击键盘上的“。”键&#…

神经网络动画讲解 - 神经网络工作流程

神经网络工作流程 神经网络工作流程: 特征分解1(手写数字->简单笔画组合)、特征分解2(简单笔画->最小笔画组合)、特征识别1(最小笔画组合->简单笔画)、特征识别2(简单笔画…

Java 入门指南:迭代器(Iterator)

迭代器 迭代器(Iterator) 是一种行为型设计模式,属于设计模式之一,迭代器模式提供了一种方法来顺序访问一个聚合对象(如List、Set等)中各个元素,而不需要暴露该对象的内部表示。 Iterator 对象…

攻防世界-web题型-6星难度汇总-个人wp

i-got-id-200 这一题很清楚的告诉了考点是什么,就是cgi相关的知识,不过我对这个不了解。。。也不会perl语言,先去网上看看这个东西吧,了解一下 看到一篇挺有意思的视频CGI(通用网关接口)_百度百科 看了这…

MediaTek 天玑9000 旗舰5G,都有哪些突破

天玑9000,是MTK 在2022发布的全新旗舰SOC , 采用台积电4nm制程和Armv9架构,八核CPU。 市场上采用天玑9000的手机有小米12Pro、小米Redmi K50 Pro、Vivo X80等。 今天我们看下这款soc更详细的一些特点介绍。 一、率先采用台积电 4nm 先进制程 业界率先采用台积电 4nm…

传统2D3D视觉分享

哈喽,大家好,本文主要是说明关于【视觉源码小铺】知识星球内的相关内容 视觉源码小铺都有什么内容 IVision拖拽平台&算法 星球内算法(持续更新)

滚雪球学Java(90):Java图形界面新篇章:Swing框架深度解析,真有点东西!

咦咦咦,各位小可爱,我是你们的好伙伴——bug菌,今天又来给大家普及Java SE啦,别躲起来啊,听我讲干货还不快点赞,赞多了我就有动力讲得更嗨啦!所以呀,养成先点赞后阅读的好习惯&#…

解决MySQL的PacketTooBigException异常问题

一、背景 在大数据量导入mysql的时候,提示错误Cause: com.mysql.cj.jdbc.exceptions.PacketTooBigException: Packet for query is too large 原因是MySQL的max_allowed_packet设置最大允许接收的数据包过小引起的,默认的max_allowed_packet如果不设置&…

Stable Diffusion 使用详解(9)--- 艺术字及海报融入

目录 背景 方法一 利用controlNet lineart invert depth 提示词 效果 方法二 准备蒙版 绘制大型场景艺术字 controlnet Lora 模型 效果 PS 融入 背景 如果看过上一期你应该知道如何利用layer diffusion 制作场景动漫海报,其实掌握这个方法后&#xf…

DFS 算法:记忆化搜索

我的个人主页 {\large \mathsf{{\color{Red} 我的个人主页} } } 我的个人主页 往 {\color{Red} {\Huge 往} } 往 期 {\color{Green} {\Huge 期} } 期 文 {\color{Blue} {\Huge 文} } 文 章 {\color{Orange} {\Huge 章}} 章 无 此系列更新频繁,求各位读者点赞 关…

视频号小店:微信生态下的新零售革命者

在数字化浪潮的席卷之下,微信视频号凭借其独特的社交基因和庞大的用户群落,正悄然崛起为新零售战场上的新晋强者。特别是视频号小店体系的创立,为商家打造了一个集商品展现、交易促进与营销策略部署于一体的综合运营平台,实现了业…

网络安全中的人工智能应用

1. 引言 随着网络攻击的复杂性和频率不断增加,传统的安全防护措施逐渐难以应对这些威胁。人工智能(AI)作为一种变革性的技术,正在逐步成为增强网络安全的重要工具。AI通过自动化、智能化的方式,可以有效提高威胁检测、…

【JAVA基础】多态

文章目录 多态向上转型练习题 多态 父类的引用指向子类的对象 public class A {public String name;public int age;public void run(){ //该run()方法被覆盖System.out.println("a跑的快");}public void eat(String name){System.out.println(name"吃的很多&…

从零到一,我的AI绘画赚钱之旅:准大一新生暑假自学成才,月入学费不是梦!

大家好,我是即将步入大学校园的准大一新生。在这个漫长的暑假里,我决定学习一门新技术,充实自己。在一次网上冲浪的过程中,我偶然发现了AI绘画这个神奇的世界。以下是我在暑假期间学习AI绘画的经历,以及我是如何通过它…

缓存之Tair

介绍 ​ 在Tair出现之前的很长一段时间里,像redis、memcache这些知名NoSql数据库是不支持分布式的,在这样的背景下,由淘宝网自主开发并在2010.6开源的一个高性能、高扩展、高可靠分布式缓存,类似map的key/value结构,在…

C#实现数据采集系统-数据反写(3)ModbusTcp写入数据模块开发

写入报文分析 ModbusTcp报文详细解析见 ModbusTCP协议报文解析 写入常用的四个功能码,线圈 05,15(0x0F),寄存器06,16(0x10) 详细报文如下: //00 01 00 00 00 06 FF 05 00 01 FF 00 写单个线圈 //00 01 …

【人工智能】AI虚拟主播制作初体验:生成数字人到视频创作全流程

文章目录 💯AI虚拟主播💯使用AI绘画工具生成数字人借助GPT生成数字人所需的提示词方案一:使用Midjourney生成数字人方案二:使用TensAI生成数字人补充方案三:在D-ID内直接生成数字人 💯使用D-ID生成数字人视…

CS1.5快捷键

《黑神话悟空》玩不起,玩起了23年前的cs1.5 B11:USP(警察自带手枪) B12:Glock18(匪徒自带手枪) B13:Desert Eagle(沙漠之鹰) B14:P-228 B15:Dual Berettas(匪…

git命令大全(git checkout ,git merge,git branch,git cherry-pick)

git stash 和git commit区别git文件状态命令手册git init git clone提交和修改git log远程仓库操作 git pull git push创建分支(增删改查)git checkout ,git branch ,git mergegit loggit taggit add, git stash ,git rebase,git cherry-pick git stash …