别只看 UA 判断蜘蛛真假,抓一次比猜十次准
日志里 Baiduspider 的请求量突然翻倍,先别高兴。
可能是假的。
伪造成本极低
curl -A "Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)" https://你的站/
一行命令,UA 就变成了百度蜘蛛。采集器、扫描器、压测工具都这么干。
所以日志里的 UA 只能当线索,不能当身份。
验真两步
第一步,查 IP。百度、Google、Bing 都公布蜘蛛 IP 段,请求来源必须在段内。
第二步,查反向 DNS。IP 反解到官方域名,再正向解析回去,要能对上。只做反解不够,DNS 可以伪造。
Google 还提供 JSON 格式的 IP 段列表,可以定期拉取比对。
模拟抓取能做什么
它不能验真,请求是从第三方节点发出的。
但它能回答另一个问题:这个 UA 访问你的站,能拿到什么。
状态码、字节数、正文,这些和身份无关,和配置有关。
两个问题别混
“这个请求是不是真蜘蛛”是日志分析,靠 IP 和 DNS。
“真蜘蛛来了能不能拿到内容”是可访问性,靠模拟抓取。
混在一起,就会得出“蜘蛛来了却不收录,肯定是算法针对我”这种结论。
先用 蜘蛛模拟抓取 确认内容可达,再回日志验真。顺序别反。