反爬虫机制

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.返回伪造的信息,假数据

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

办法总比困难多多

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值