网站被恶意采集(内容爬虫/镜像站/数据抓取)是很多网站都会遇到的问题,完全杜绝很难,但可以通过技术+策略组合大幅降低被采集的效率和价值。下面给你一套比较有效、常见的防治方案:
一、服务器层防护(最有效)
1. 限制高频访问(Rate Limit)
恶意采集通常会短时间大量请求。
常见做法:
Nginx 限速
IP访问频率限制
Nginx示例:
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
location / {
limit_req zone=one burst=5 nodelay;
}效果:
同一IP每秒最多1次请求
爬虫效率大幅下降
2. 封禁恶意IP
通过日志分析爬虫IP并封禁
工具:
fail2ban
nginx deny
Cloudflare WAF
例如:
deny 1.2.3.4;
自动封禁策略:
1分钟访问 >100次
自动加入黑名单
3. 使用CDN防爬
推荐CDN:
Cloudflare
阿里云CDN
腾讯云CDN
功能:
Bot识别
WAF规则
JS Challenge
人机验证
例如:
Cloudflare Bot Fight Mode
效果非常好。
二、反爬虫技术(网站层)
4. 动态内容加载
让HTML没有完整内容。
方法:
AJAX加载
API请求数据
例如:
页面HTML只有框架 内容通过接口加载
爬虫难度增加。
5. JS加密接口
接口参数加密
例如:
/api/article?id=123&token=xxxx
token由JS生成
没有JS运行环境爬虫很难拿到数据。
6. 签名验证
接口需要签名:
sign = md5(id + timestamp + secret)
没有算法很难调用。
三、识别爬虫行为
7. User-Agent识别
很多采集器UA明显
例如:
python scrapy curl wget
Nginx拦截:
if ($http_user_agent ~* (python|scrapy|curl|wget)) {
return 403;
}注意: 高级爬虫会伪装UA。
8. 无Referer拦截
采集器很多没有referer。
if ($http_referer = "") {
return 403;
}四、蜜罐反爬(很有效)
9. 隐藏链接(honeypot)
页面放隐藏链接:
<a href="/trap" style="display:none">test</a>
正常用户看不到 爬虫会抓
访问 /trap 的IP直接封。
五、内容防复制
10. 图片水印
给图片加水印。
11. 内容混淆
例如:
AI → A I
或者:
关键词 → 图片
采集内容质量下降。
六、版权保护
12. DMCA投诉
如果被镜像站:
可以投诉
Cloudflare
Google
Hosting provider
让搜索引擎删除收录。
七、SEO反采集策略
13. 主动提交搜索引擎
让搜索引擎优先收录你的网站。
工具:
Google Search Console
百度站长平台
避免采集站排名高于原站。
八、最强方案(推荐组合)
实际防采集建议组合:
CDN + WAF + 接口签名 + 限速 + 蜜罐
具体组合:
1️⃣ Cloudflare Bot防护
2️⃣ Nginx限速
3️⃣ API签名
4️⃣ 隐藏蜜罐链接
5️⃣ 自动封IP
基本能防住 90%采集器。
九、常见无效防护(很多人误用)
这些基本没用:
禁止右键
禁止复制
JS混淆
HTML加密
robots.txt
爬虫完全可以绕过。
十、如果采集非常严重(高级方案)
可以做:
行为识别反爬
检测:
鼠标轨迹
页面停留时间
滚动行为
JS执行
没有行为直接封。
很多大网站用这种。