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

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

更多精致内容

相关推荐
努力的家伙是不讨厌的11 分钟前
解析json导出csv或者直接入库
开发语言·python·json
云空34 分钟前
《Python 与 SQLite:强大的数据库组合》
数据库·python·sqlite
oliveira-time1 小时前
爬虫学习6
爬虫
凤枭香1 小时前
Python OpenCV 傅里叶变换
开发语言·图像处理·python·opencv
测试杂货铺1 小时前
外包干了2年,快要废了。。
自动化测试·软件测试·python·功能测试·测试工具·面试·职场和发展
艾派森1 小时前
大数据分析案例-基于随机森林算法的智能手机价格预测模型
人工智能·python·随机森林·机器学习·数据挖掘
小码的头发丝、2 小时前
Django中ListView 和 DetailView类的区别
数据库·python·django
Chef_Chen3 小时前
从0开始机器学习--Day17--神经网络反向传播作业
python·神经网络·机器学习
千澜空3 小时前
celery在django项目中实现并发任务和定时任务
python·django·celery·定时任务·异步任务
斯凯利.瑞恩3 小时前
Python决策树、随机森林、朴素贝叶斯、KNN(K-最近邻居)分类分析银行拉新活动挖掘潜在贷款客户附数据代码
python·决策树·随机森林