前一阵子小V接到一个客户的反映,网站被一个dedecms站点采集了,需求小V协助防止网站被采集。当时小V也没有头绪,只好叫客户先把服务器日志发过来分析下了。通过查看服务器日志,小V发现一个空http_user_agent的IP频繁的对网站发起请求。经过站长工具查询发现该IP正式采集客户网站的织梦站点的IP。当时小V立即联系客户,叫客户屏蔽这个IP。客户屏蔽IP后当天立马就看到效果了,可是第三天的时候,该织梦站点换了个IP又开始对客户的站点进行采集了。显然封IP的方法不是长久之计。正好有个好基友找到小V问如何判断浏览器类型来返回不同css。小V立马想到了客户被采集的事,那么也可以通过判断HTTP_USER_AGENT来达到防止采集的,代码如下:

1
2
3
4
5
if(!$_SERVER['HTTP_USER_AGENT']) { //判断是否为空AGENT
header("Content-type: text/html; charset=utf-8");
echo '不许采集!因为采集的站长MJJ!';
exit;
}

客户使用了以上代码之后,直到小V发布此篇文章时也未被再次采集了。

另外可能有人会问代码加到哪?(PS:将以上代码丢到根目录的index.php或者functions.php文件的<?php之后即可。当然其他php程序也可以使用此方法进行防采集,只需要将此代码加到程序的通用文件或者是入口文件中即可。)

另外利用apache的.htaccess文件也可以对访客的http_user_agent进行判断达到防止恶意爬虫以及采集的效果,示例代码如下:(PS:实际运用中需要根据情况进行修改)

1
2
3
4
5
RewriteCond %{HTTP_USER_AGENT} ".*EmbeddedWB.*" [OR]
RewriteCond %{HTTP_USER_AGENT} ".*QunarBot.*" [OR]
RewriteCond %{HTTP_USER_AGENT} ".*Windows 98.*" [OR]
RewriteCond %{HTTP_USER_AGENT} "^Mozilla/4.0$"
RewriteRule ^(.*)$ http://www.v7v3.com/213.html

由于网上能下载的大部分的采集程序都是空agent的,所以小V的方法可以屏蔽掉绝大多数的采集程序,如果你会分析日志的话,基本上已经没有人能很顺利的采集你网站的内容了。

 

–本文转自:维7维3