zoukankan      html  css  js  c++  java
  • 反爬机制

    一.通过headers反爬虫:

    • Basic Auth

    这是一种古老的、不安全的用户验证方式,一般会有用户授权的限制,会在headers的Autheration字段里要求加入用户名密码(明文),如果验证失败则请求就会失败,现在这种认证方式正在被淘汰。

    • Referer

      链接的来源,通常在访问链接时,都要带上Referer字段,服务器会进行来源验证,后台通常会用此字段作为防盗链的依据。

      User-Agent: U-A校验,浏览器在发请求时,会附带用户设备类型、系统以及浏览器的型号版本。服务器会通过判断U-A的值来区分不同的浏览器。

      如果服务器仅仅通过判断请求的U-A来区分不同浏览器。因此:可模拟U-A,即是我们手动指定我们发出去的请求的User-Agent的值。

      (一般情况下,使用编程语言提供的第三方网络库来发送HTTP请求会有一个默认的U-A,比如requests库的默认U-A为"python-requests/2.8.1"(后面的版本号可能不同)

    • Cookie

      一般在用户登录或者某些操作后,服务端会在返回包中包含Cookie信息要求浏览器设置Cookie,没有Cookie会很容易被辨别出来是伪造请求;

      也有本地通过JS,根据服务端返回的某个信息进行处理生成的加密信息,设置在Cookie里面;

    • 自定义字段

      因为http的headers可以自定义地段,所以第三方可能会加入了一些自定义的字段名称或者字段值,这也是需要注意的。

      

      header表现形式:key-value.

      User-Agent标示了一个浏览器的型号

      

    二.通过用户行为

    真人通过浏览器访问网站的速度(相对程序来讲)是很慢的。在较短时间内,发了较多的请求,服务器会认为你是一个 爬虫。

    我们可以:用代理IP,转发我们的请求。

    不少网站提供或罗列了一大批代理IP,我们可以抓取下来之后存储起来,以备不时之需。不过,很多代理IP的寿命都比较短,所以最好有一套完整的机制来校验已有代理IP的有效性。

    三.通过验证码限制

      这样的方式与上面的方式相比更加难处理的是,不管你的访问频次怎么样,你都需要输入验证码才行

    四.基于动态页面的反爬虫

      跟踪服务器发送的ajax请求,模拟ajax请求

    五.通过账号限制

      账号的作用更多是网站处于功能考虑的,反爬虫只不过是顺便完成的功能。

  • 相关阅读:
    手写一个简易版的Vue-Router,包含VueRouter的基本功能
    Odoo14学习笔记(6) 报psycopg2.errors.UndefinedColumn问题解决办法
    Odoo14学习笔记(5) 通过onchange机制自动计算“工龄”
    Odoo14学习笔记(4) 通过计算字段Compute Field自动计算工龄
    Odoo14学习笔记(3) 使用_sql_constraints对字段做Unique约束
    Odoo14学习笔记(2) 创建一个新应用Application
    Odoo14学习笔记(1) 安装时报关系"ir_modul"不存在问题
    大叔学Spring Boot笔记(15)MyBatis-Plus中LambdaQueryWrapper的使用
    java 读取excel 神器easyPoi
    通过PROFINET实现S7-1200与CU320-2 PN S120通讯
  • 原文地址:https://www.cnblogs.com/zhaochangbo/p/7652444.html
Copyright © 2011-2022 走看看