《代理选择与反爬虫策略探究:如何优化网络爬虫效率与稳定性》

news/2024/11/15 22:19:14/文章来源:https://www.cnblogs.com/CodeRealm/p/18298306

代理IP如何选以及常见反爬策略

为什么需要代理?

因为有的网站会封IP,用户如果没有登录,那IP就是身份标识,如果网站发现用户行为异常就非常可能封IP

什么是代理IP

就是让一个人帮你转交请求,帮你转交的人对面不熟,也就难以发现频繁请求的是你

但是要注意我们只能使用高匿代理,透明代理(转交请求同时告诉是帮谁转交的)什么的是不能用的

如何衡量代理

速度:加代理之后3秒钟能相应是优秀,5秒钟之内能相应是能用的

安全:用来路不明的代理有信息安全风险

价格:性价比需要考虑

请求间隔:有的接口有请求间隔限制,尤其是按时收费的这种,也要考虑

稳定性:失效时间人为设置有长时间的和短时间的,短的1到3分钟,长的几天的都有,越长的越贵,我们用短的就行

比较常用的有芝麻代理,小象代理,快代理,站大爷等等

爬虫选择哪种代理

  1. 高匿代理:需要代理IP池,否则太费代理,太烧钱
  2. 隧道代理
    • 短效版
    • 动态版:以IP生成cookie登录抓取数据 不能满足(IP存活时间短)
  3. 代理客户端:贵,但平均每隔代理几秒一换,比较快
    • 优点:
      • 时间恰当,以IP生成cookie登录抓取数据 也能满足

反爬策略

  1. 封禁IP类

    • 阈值:

      • 打比方,一分钟60次,第一次封禁2分钟,然后策略改为一分钟45次
      • 打比方,一分钟60次,第二天访问同样的内容,则策略改为一分钟45次(增量爬虫,需每天爬取进行数据更新)

      总结:所以有的代理IP可以复活,代理IP池很有必要(后续会发布)

  2. 蜜罐陷阱:网页有正常用户不可访问的链接,爬虫获取并访问此链接将进入无限循环,直到程序崩溃

  3. token加密验签

  4. 检测环境变量:selenium可以检测环境变量,requests访问同样也可以检测环境变量

爬虫策略

  1. 程序模拟抓
    • 可能涉及的问题
      • token加密验签
      • 封禁IP
      • 检测环境变量(不常见)
      • 蜜罐陷阱(不常见)
  2. selenium抓
    • 可能涉及的问题
      • 封禁IP
      • 检测环境变量(可以消除指纹)
  3. selenium被未知手段封禁,山穷水尽:ODR识别(windows鼠标模拟操作、windows鼠标模拟切换IP、windows鼠标模拟访问数据截图、ODR识别获取数据)
    • 弊端:
      • ODR识别不准,需要进行模型训练
      • 慢,识别七八秒钟
    • 适用场景:
      • 适用于只用获取一次数据的项目,不适合增量爬虫

爬虫注意

  1. 不要过于追求爬取速度,速度过快对网站有影响,网站的反爬措施就会更新,对自己没有好处,因为增量爬虫(项目需要维护),不要多进程加协程,一般多进程或者协程即可

更多精致内容

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis部署与使用

一、关系型数据库与非关系型数据库 1.关系型数据库 关系型数据库是一个结构化的数据库,创建在关系模型(二维表格模型)基础上,一般面向于记录。 SQL语句(标准数据查询语言)就是一种基于关系型数据库的语言,用于执行对关系型数据库中数据的检索和操作。 主流的关系型数据库…

excel表格中怎样将一列的数值全部加上一个数值

1、打开目标文件2、然后在B1或者其它单元格中输入数字“10”,如图所示。3、然后鼠标右击此单元格,在右键菜单中执行“复制”命令。4、然后选中要加10的所有数据,在右键菜单中点击“选择性粘贴”选项5、然后在出现的窗口中,点击运算区域的“加”选项,进行确定。6、完成以上…

CRC我就拿下了

国人讲CRC的没有什么能讲明白的文章,除了一篇《我学习 CRC32、CRC16、CRC 原理和算法的总结(与 WINRAR 结果一致)》,这里先感谢他,另,他也有一些没有说明白的地方,怎么说呢,还是鄙人自己来吧。 我弄明白CRC这个原理和算法主要参考的是上面的国人的那篇和这个外国的《A …

在vscode中打开浏览器

在html页面右键,选择 open in default browser 即可打开默认浏览器 布局——<!-- 文档类型为html --> <!DOCTYPE html> <html lang="en"> <head><!-- 字符集为utf-8 --><meta charset="UTF-8"><!-- 设置浏览器兼容…

[Java]“不同族”基本数据类型间只能“强转”吗?

本篇文章标题即摘要,就不赘述。 如果文中有不妥或不对的,多多交流。【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) https://www.cnblogs.com/cnb-yuchen/p/18298193 出自【进步*于辰的博客】本文阐述需要计算不同位二进制的表示范围,引用博文《[MySQ…

还在困惑需要多少数据吗?来看看这份估计指南 | CVPR 2022

论文基于实验验证,为数据需求预测这一问题提供了比较有用的建议,详情可以直接看看Conclusion部分。 来源:晓飞的算法工程笔记 公众号论文: How Much More Data Do I Need? Estimating Requirements for Downstream Tasks论文地址:https://arxiv.org/abs/2207.01725 论文代…

uniapp实现问卷多项填空

产品提出了一个需求,需要实现类似问卷星的记录单,要求有单选,多选,填空,以及多项填空。前三者好实现,最后一个花费了我挺长的时间。 在pc端后台管理模板选项设置的时候,保存是将整个问题保存进去,以三个或三个以上的下划线为一个空,保存的形式例为: cm* cm*___ cm…

编译器

本页面主要介绍了各系统下各类编译器/解释器的安装步骤。 GCC Windows 手动下载安装 访问 MinGW-w64 的下载页面,有多个构建版本。方便起见,我们使用由 WinLibs 提供的构建版本。 首先前往 WinLibs 下载最新的安装包,选择合适的版本,本文选择了 GCC 12.3.0 + LLVM/Clang/LL…

MacOS 15 Sequoia 启用允许“任何来源”应用

MacOS 15 Sequoia 新系统中,spctl --master-disabl指令被禁用,无法启用允许“任何来源”应用程序,导致每一次安装新的应用程序,需要手动在设置中允许,十分麻烦。MacOS 15 Sequoia 启用允许“任何来源”应用 spctl 无法使用 在 MacOS 15 Sequoia Beta3 系统中 spctl 命令被…

ctfshow sql-labs(笔记)

这是当时做题的时候记得笔记有些乱看不懂的可以私我 判断闭合方式: id=1’ and 1=1–+ *正常回显* id=1’ and 1=2–+ *异常回显*id=1 and 1=1 *正常回显* id=1 and 1=2 *异常回显*id=1’) and 1=1–+ 回显正常 id=1’) and 1=2–+ 回显异常id=1") and 1=1–+ 正常回显 id…

服务器(RAID1)数据丢失恢复

服务器数据恢复是指将物理服务器或虚拟服务器上丢失的数据重现还原的操作。配备服务器方便数据集中存储管理,建立信息系统。服务器上的数据通常是存储在硬盘上,出于数据安全和性能的考虑,这些硬盘会组建RAID1磁盘阵列。服务器中的数据丢失了会带来巨大损失,所以,定期对服务…

服务器异常状态怎么解决

服务器异常状态的解决方法需要根据具体的问题和故障类型来确定。 一、硬件故障 检查电源和连接: 确保电源线没有松动或损坏。 检查电源插座是否有电。 如果服务器有多个电源单元,确保它们都在正常工作。 检查内部硬件: 检查服务器的内存条是否完全插入插槽中,并且与服务器兼…