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

    1、UA检测

    UA,即 User-Agent,是HTTP请求头部信息的一个属性,它是用户访问网站时的浏览器标识,可以通过审查元素或者开发者工具中看到。一些网站通过检测UA从而确定请求的对象是脚本程序还是正常的用户通过浏览器请求,实现反爬虫的目的。

    反反爬策略:构造自己的UA池,使得每次用程序向网站发请求时都随机带上正常的UA标识,更好的模拟浏览器行为。有些网站还会有反爬时间或者频率的限制,因此,最好可以再设置一个 timeout ,最好是随机休眠,Python中可以使用 time.sleep() 进行设置。

     2、IP限制

    一些网站会根据你请求的IP地址的频率和次数来进行反爬。如果你同样的IP地址在短时间内对一个网站频繁的进行访问,那么服务器有可能在一段时间内会禁止这个IP地址进行访问。

    反反爬策略:构造自己的IP代理池,然后每次发起请求时都从池中随机选择一个IP地址。比如:可以去西刺代理寻找一些IP地址构造代理池。

    3、验证码反爬

    这个是一种非常有效的反爬机制,现在的验证码也变得越来越复杂,各种花样很多,想写个脚本去识别验证码那还真不是一件简单的事情。

    反反爬策略:这个能怎么样呢,简单的验证码可以通过云打码这个平台上提供的接口进行编码识别,试了一下,还不错,收费也不贵,但是一些比较复杂的验证码就不知道怎么样了,实在不行,还是用手输入吧

    4、Ajax动态加载

    有些网页直接用它的URL抓取不到数据,这时候,就很有可能是Ajax动态加载的了。它的原理是利用网页的URL加载网页的源代码之后,会先在浏览器中执行JavaScript程序,这些程序会加载除更多的内容,并把加载出的内容传输到网页中。

    反反爬策略:利用审查元素或者开发者工具查看网页数据的XHR类型的URL,并向这个XHR类型的URL发起请求就可以拿到对应的数据了。

    5、cookie限制

    cookie是服务器在用户浏览器设置的请求头部信息,当浏览器发起请求时,如果存在cookie,就一定会携带。服务器会检测cookie是否是之前设置的cookie实现反爬。

    反反爬策略:在请求头部信息中带上相应的cookie信息,利用Python的requests模块发请求时,可以使用requests.session自动处理cookie。

  • 相关阅读:
    Linux Shell参数替换
    Linux下redis的安装
    Make 命令教程
    linux环境变量 export命令详解
    Java分布式应用技术架构介绍
    centos mysql忘记密码
    <context:component-scan>使用说明
    Spring <context:annotation-config/> 解说
    [Visio]直线工具和连接线工具的区别
    [Visual Studio Code] 字体设置
  • 原文地址:https://www.cnblogs.com/andrew3/p/12693288.html
Copyright © 2011-2022 走看看