• python3爬虫--反爬虫应对机制


    python3爬虫--反爬虫应对机制

    内容来源于:

    Python3网络爬虫开发实战;

    网络爬虫教程(python2);

    前言:

      反爬虫更多是一种攻防战,网络爬虫一般有网页爬虫和接口爬虫的方式;针对网站的反爬虫处理来采取对应的应对机制,一般需要考虑以下方面:

      ①访问终端限制:这种可通过伪造动态的UA实现;

      ②访问次数限制:网站一般通过cookie/IP定位,可通过禁用cookie,或使用cookie池/IP池来反制;

      ③访问时间限制:延迟请求应对;

      ④盗链问题:通俗讲就是,某个网页的请求是有迹可循的,比如知乎的问题回答详情页,正常用户行为必然是先进入问题页,在进入回答详情页,有严格的请求顺序,如果之间跳过前面请求页面就有可能被判定为到了,通过伪造请求头可以解决这个问题;

      具体的反爬虫策略:

      ①验证码

      应对:简单的验证码可通过机器学习识别,准确率可高达,50-60%;复杂的可通过专门的打码平台人工打码(依据验证码的复杂度,打码工人平均每码收1-2分钱)

      ②封ip(容易误杀)

      应对:通过ip代理池/vps拨号获取ip方式,可用低成本的获取几十万ip

      ③滑动验证码:相比常规的验证码易被机器学习识别,滑动验证有一定的优势

      应对:模拟滑动来验证

      ④关联上下文/防盗链:利用token/cookie的记录能力,来关联请求的上下文,通过判断请求是否走了完整的流程来判定是否是爬虫;重而反爬虫(知乎,头条都有该机制)

      应对:分析协议,进行全量模拟

      ⑤javascript 参与运算:利用简单爬虫无法进行json运算的特征,对中间结果进行js解析/运算

      应对:可以通过自带 js 引擎模块或直接使用 phantomjs 等无端浏览器进行自动化解析

      ⑥session封禁:session请求超过阈值,从而封禁(容易导致误杀)

      ⑦UA封禁:ua请求超过阈值,从而封禁(容易导致误杀)

      ⑧web-fongt反爬虫机制:源代码不展示内容,而是提供字符集,在页面使用了font-face定义了字符集,并通过unicode去映射展示

      ⑨其他:比如代码混淆、动态加密方案、假数据等方式

       https://www.52pojie.cn/thread-1288511-1-1.html

      

    内容:

    cookie池的实现及使用

    IP池的实现及使用

     

     

  • 相关阅读:
    css动画特效
    http标码集合
    vue的搭建项目
    多功能
    react官方脚手架搭建项目
    深入挖掘分析Go代码
    GoLang AST简介
    GoLang中的逃逸分析简介
    使用Golang实现状态机
    GoLang中的Context
  • 原文地址:https://www.cnblogs.com/1009gavin/p/9440111.html
Copyright © 2020-2023  润新知