AI爬虫伪装成正常浏览器?日志中可识别的3个特征

来源:互联网 时间:2026-10-29

带宽从每月两T涨到六T,访问量没涨。日志里每天的请求数翻了三倍,PV统计却基本持平。两个数对不上,说明有一部分请求根本没被统计代码记到。这类流量多半是只抓HTML、不执行JS的。robots.txt里已经写了禁止抓取,照样来。规矩只对守规矩的生效。拉一份日志下来,按URI后缀分组,一眼就能看出这批请求清一色是页面,没有一条css或图片。这批请求的User-Agent都写着Chrome,看着很正常。

UA可以随便填。curl加一个参数就能自称Chrome,改起来不需要任何技巧。所以按UA封是一层纸,封完第二天换个UA接着来。真正能露馅的是请求本身的样子。浏览器和人不一样,它有很多强迫症。

第一个特征是不抓静态资源。真实浏览器打开一个页面,后面必然跟着CSS、JS、字体、图片,一个页面几十个请求。只取HTML的客户端,日志里这些后缀一个都没有。第二个特征是请求头太干净,缺Accept-Language,缺Sec-CH-UA,缺Referer,顺序也常常是反的。UA可以整段照抄一个真实浏览器。请求头的顺序却常常露馅,Chrome发出来的顺序是固定的。第三个特征在IP上,反查回来的域名是amazonaws、azure或者阿里云的地址段。三个凑齐两个,基本就能定了。

行为上也有痕迹。并发几十个连接,间隔精确到毫秒级别相等,人类点鼠标做不到这个精度。夜里三点到五点最活跃,正好是我们的低谷。

统计的办法不用装软件,一条命令就够。把access日志按IP分组,算每个IP请求总数里静态资源占几成。正常浏览器这个比例在八成以上,抓取程序接近零。再把UA和IP段交叉,一批批就浮出来了。顺带看一眼每天不同小时的分布,机器人的曲线太平了。

处理上你先限速,再谈封禁。按IP给每秒五个请求,超了返回429,正常用户感觉不到。直接返回403会更省事,但误伤也大,运营商出口后面可能坐着几十个真人。对没有静态请求又自称浏览器的UA,返回一个需要JS计算的挑战页。机器人过不去。这两层加起来,带宽回落一半,正常用户没有感知。

封的时候留个心眼,搜索引擎的爬虫要放行。Googlebot的官方IP段是公开的,反查googlebot.com和google.com两个后缀。核对一致才算真。只反查域名不够,正向解析回去还得对得上,否则伪造的PTR就能骗过去。挡掉训练爬虫不会影响搜索收录,这两件事走的是两套通道。现在每月带宽回到两T出头,日志里那批机器人还在敲门,只是敲不动了。

相关文章

标签:

A5创业网 版权所有

返回顶部