虚拟主机被搜索引擎爬虫访问耗费大量流量解决方法
问题场景:
客户使用虚拟主机,网站被搜索引擎爬虫访问耗费大量流量和带宽,如何处理。
解决方法:
可以通过在站点根目录下创建 Robots.txt,Robots.txt 文件是网站的一个文件,搜索引擎蜘蛛抓取网站首先就是抓取这个文件,根据里面的内容来决定对网站文件访问的范围。它能够保护我们的一些文件不暴露在搜索引擎之下,从而有效的控制蜘蛛的爬取路径。
注:Robot.txt协议不是强制协议,部分搜索引擎或者伪装成搜索引擎的爬虫不会遵守该协议,对于不遵守该协议的情况,以下方法无效。
- 首先,先了解一下目前搜索引擎和其对应的 User-Agent,如下:
搜索引擎 User-Agent
AltaVista Scooter
baidu Baiduspider
Infoseek Infoseek
Hotbot Slurp
AOL Search Slurp
Excite ArchitextSpider
Google Googlebot
Goto Slurp
Lycos Lycos
MSN Slurp
Netscape Googlebot
NorthernLight Gulliver
WebCrawler ArchitextSpider
Iwon Slurp
Fast Fast
DirectHit Grabber
Yahoo Web Pages Googlebot
LooksmartWebPages Slurp
- Robots.tx t样例代码:
例1. 禁止所有搜索引擎访问网站的任何部分
User-agent:
Disallow: /
例2. 允许所有的搜索引擎访问网站的任何部分
User-agent:
Disallow:
例3. 仅禁止Baiduspider访问您的网站
User-agent: Baiduspider
Disallow: /
例4. 仅允许Baiduspider访问您的网站
User-agent: Baiduspider
Disallow:
例5. 禁止spider访问特定目录
User-agent: *
Disallow: /cgi-bin/
Disallow: /tmp/
Disallow: /data/
注意事项:
三个目录要分别写。
请注意最后要带斜杠。
带斜杠与不带斜杠的区别。
例6. 允许访问特定目录中的部分url
实现a目录下只有b.htm允许访问
User-agent: *
Allow: /a/b.htm
Disallow: /a/
参考地址:https://help.aliyun.com/knowledge_detail/36295.html?spm=5176.11065259.1996646101.searchclickresult.62685618XdBfFO
nginx防止爬虫抓取页面
方法一:修改nginx.conf,禁止网络爬虫的ua,返回403。
server {
listen 80;
server_name 127.0.0.1;
#添加如下内容即可防止爬虫
if ($http_user_agent ~* “qihoobot|Baiduspider|Googlebot|Googlebot-Mobile|Googlebot-Image|Mediapartners-Google|Adsbot-Google|Feedfetcher-Google|Yahoo! Slurp|Yahoo! Slurp China|YoudaoBot|Sosospider|Sogou spider|Sogou web spider|MSNBot|ia_archiver|Tomato Bot”)
{
return 403;
}
例如:
方法2:网站更目录下增加robots.txt,放在站点根目录下。
在http://tool.chinaz.com/robots/站点可以针对现在的搜索引擎按照想要的规则生成robots.txt文件。
知识扩展:
robots.txt是搜索引擎中访问网站的时候要查看的第一个文件。robots.txt文件告诉蜘蛛程序在服务器上什么文件是可以被查看的。
当一个搜索蜘蛛访问一个站点时,它会首先检查该站点根目录下是否存在robots.txt,如果存在,搜索机器人就会按照该文件中的内容来确定访问的范围;如果该文件不存在,所有的搜索蜘蛛将能够访问网站上所有没有被口令保护的页面。百度官方建议,仅当您的网站包含不希望被搜索引擎收录的内容时,才需要使用robots.txt文件。如果您希望搜索引擎收录网站上所有内容,请勿建立robots.txt文件。
Robots协议是国际互联网界通行的道德规范,基于以下原则建立:
1、搜索技术应服务于人类,同时尊重信息提供者的意愿,并维护其隐私权;
2、网站有义务保护其使用者的个人信息和隐私不被侵犯。
当然,如果搜索引擎不遵守约定的Robots协议,那么通过在网站下增加robots.txt也是不起作用的。(在正式环境中,可以适当允许搜索引擎抓取收录)