织梦如何排查恶意蜘蛛抓取

除了百度、谷歌等正规蜘蛛,站点常被各种采集器、镜像站、SEO 工具蜘蛛骚扰。它们伪装成浏览器 UA,高频抓取带宽却不对收录有贡献。本文给出从日志识别到封禁的完整排查流程。

一、什么是恶意蜘蛛

常见特征:

典型恶意 UA:AhrefsBotSemrushBotMJ12botDotBotPetalBotBytespiderYisouSpider(看是否需要其流量)。

二、日志分析定位

站点访问日志 /www/wwwlogs/yourdomain.com.log。先统计所有蜘蛛抓取量:

# 按抓取次数排序
awk -F'"' '{print $6}' /www/wwwlogs/yourdomain.com.log \
  | grep -oiE '(bot|spider|crawler|slurp|scan)' \
  | sort | uniq -c | sort -rn | head -20

再按 IP 统计访问频次:

awk '{print $1}' /www/wwwlogs/yourdomain.com.log | sort | uniq -c | sort -rn | head -30

单 IP 日访问超过 1000 次且 UA 不是主流蜘蛛,基本可判定为恶意抓取。

三、识别伪装蜘蛛

有些采集器 UA 伪装成 Chrome,但行为是机器。验证方法:

# 取出可疑 IP 的 UA
grep "^1.2.3.4 " /www/wwwlogs/yourdomain.com.log | awk -F'"' '{print $2}' | head -5

如果 UA 是 Mozilla/5.0...Chrome/... 但:

基本可判定为伪装蜘蛛。可进一步用反查 IP 归属,正规搜索引擎 IP 段可在百度/谷歌官方文档查到。

四、百度蜘蛛真伪验证

百度官方提供反查方法,对自称 Baiduspider 的 IP 做 DNS 反查:

host 220.181.108.75
# 输出类似:75.108.181.220.in-addr.arpa domain name pointer baiduspider-220-181-108-75.crawl.baidu.com.

反查域名包含 .baidu.com..googlebot.com. 才是真蜘蛛,否则是冒充。

五、封禁方法

1. robots.txt 屏蔽(友好但可被忽略)

User-agent: AhrefsBot
Disallow: /
User-agent: SemrushBot
Disallow: /
User-agent: MJ12bot
Disallow: /
User-agent: DotBot
Disallow: /
恶意蜘蛛通常不遵守 robots.txt,必须配合 Nginx 层封禁。

2. Nginx UA 屏蔽

if ($http_user_agent ~* (AhrefsBot|SemrushBot|MJ12bot|DotBot|PetalBot|Bytespider)) {
    return 403;
}

3. Nginx IP 屏蔽

deny 1.2.3.4;
deny 5.6.7.0/24;

4. 宝塔防火墙

宝塔“网站防火墙 - UA 过滤”与“IP 黑名单”可视化配置,支持按频次自动拉黑。

六、频次限制

对未知 UA 做限速,避免漏网之鱼拖垮服务器:

limit_req_zone $binary_remote_addr zone=general:10m rate=20r/s;

server {
    limit_req zone=general burst=30 nodelay;
}

正常用户与正规蜘蛛不会触发,恶意抓取会被限流。

七、监控告警

写一个简单的告警脚本,每分钟统计单 IP 访问次数:

#!/bin/bash
THRESHOLD=500
LOG=/www/wwwlogs/yourdomain.com.log
awk '{print $1}' $LOG | sort | uniq -c | sort -rn | \
while read count ip; do
    if [ $count -gt $THRESHOLD ]; then
        echo "$(date) - $ip accessed $count times" >> /var/log/spider_alert.log
    fi
done

加入宝塔计划任务每 10 分钟执行一次,结合企业微信/钉钉机器人推送告警。

八、注意事项

恶意蜘蛛治理是长期工作,建议把“日志周报 + 黑名单维护 + 频次告警”作为固定运维动作。把带宽与抓取配额留给真正能带来收录与流量的正规蜘蛛,让站点资源始终服务于有价值的访问者。