美文网首页
反爬虫机制

反爬虫机制

作者: 不能没有音乐 | 来源:发表于2021-03-24 09:10 被阅读0次

    1.headers 头部中 Referer 字段,user-agent,cookie

    新浪的另一个反爬虫机制 访客系统 Sina Visitor System
    如果不带cookie访问微博的页面的话,并不会返回正常的页面而是返回一个“访客系统”页面

    前段时间爬微博,用小号模拟登陆,在本地无需验证码,在服务器跑回回出验证码,在服务器端人工登录多次后,仍无解。

    十分好奇它的常用登录地机制。难道是服务器的IP地址早已被列入黑名单?

    最后经过多次实验,它并不判断常用登录地,它只在注册时所在IP不跳验证码

    2.ip池(建立黑IP池),维护一个cookie池,定时更新cookie
    3.请求的时间窗口过滤统计--time.sleep(random.randint(1, 4))
    4.请求频率--time.sleep(random.randint(1, 4)),可能会被nginx令牌限制
    5.蜜罐资源-在页面添加一些正常浏览器浏览访问不到的资源,一旦有ip访问,过滤下头部是不是搜素引擎的蜘蛛,不是就可以直接封了。比如说隐式链接。--通过 is_displayed() 可以判断元素在页面上是否可见。
    6.js加密
    7.利用前端页面自定义字体的方式来实现反爬的技术手段。具体使用到是 CSS3 中的自定义字体(@font-face)模块,自定义字体主要是实现将自定义的 Web 字体嵌入到指定网页中去。这就导致我们去爬取论坛帖子的口碑时,获取到的返回文本中每隔几个字就出现一个乱码符号。

    每次访问论坛页面,其中字体是不变的,但字符编码是变化的。因此,我们需要根据每次访问动态解析字体文件。

    具体可以先访问需要爬取的页面,获取字体文件的动态访问地址并下载字体,读取 js 渲染后的文本内容,替换其中的自定义字体编码为实际文本编码,就可复原网页为页面所见内容了。
    8.验证码
    9.在请求头中添加 X-Forwarded-For 字段,将自己申明为一个透明的代理服务器,一些网站对代理服务器会手软一些。
    10.懒加载,js 渲染,动态加载
    11.网站页面链接随机化,同一个页面有多个链接或根据不同情况生成链接
    12.增加采集难度,同一类页面,但是多种模板展现,一般换了模板,我们就采不到数据
    13.返回伪造的信息,假数据

    v2-e4cab58b34275a684fc5ed0507c8d808_1440w.jpeg

    相关文章

      网友评论

          本文标题:反爬虫机制

          本文链接:https://www.haomeiwen.com/subject/qewfhltx.html