php禁止网页抓取(那些搜索引擎照常爬取你网站!不遵循robots.txt文件规范)
优采云 发布时间: 2022-02-07 04:22php禁止网页抓取(那些搜索引擎照常爬取你网站!不遵循robots.txt文件规范)
从上周开始,我的博客上经常出现Bad Request (Invalid Hostname)错误,询问网站服务商才知道网站的并发太高,所以服务商限制< @网站 访问。但是我每天去看网站的流量统计,并没有什么异常,怎么可能并发太高了?后来查看了网站的搜索引擎爬取网站的日志,发现每分钟都有大量的页面被搜索引擎爬取!难怪网站的并发太高了!!
但是大家都知道搜索引擎收录网站对我们来说是件好事。我们不能禁止所有搜索引擎爬取,所以可以设置一些爬取规则来限制它们。根据我的流量来源分析,每天有大量来自百度和谷歌的流量,而其他搜索引擎几乎没有导入流量。我可以屏蔽这些不带来流量的搜索引擎。我想到的第一个方法是在 网站 根目录下写一个 robots.txt 文件:
User-agent: Googlebot
Disallow: /wp-
Allow: /wp-content/uploads/
Disallow: /?
Disallow: /feed
Disallow: /*/*/feed
Disallow: /trackback
Disallow: /*/*/trackback
Disallow: /*.php$
Disallow: /*.css$
User-agent: Baiduspider
Disallow: /wp-
Allow: /wp-content/uploads/
Disallow: /?
Disallow: /feed
Disallow: /*/*/feed
Disallow: /trackback
Disallow: /*/*/trackback
Disallow: /*.php$
Disallow: /*.css$
User-agent: *
Disallow: /
常规搜索引擎通常遵循 robots.txt 文件规范。以上只允许百度和谷歌抓取博客。但是总有一些搜索引擎不遵循robots.txt文件规范,也就是说这个设置是没有用的。那些搜索引擎像往常一样在爬你网站!不遵循robots.txt协议的代表:iAskSpider SohuAgent wget、OutfoxBot。之前以为微软的Bing搜索引擎应该是遵循robots.txt协议的,但是设置了上面的robots.txt文件规范,发现日志里有很多bingbots!
2014-11-13 17:38:14 157.55.39.39 /archives/1112/comment-page-2
Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)
2014-11-13 17:37:09 157.55.39.39 /archives/928/comment-page-10
Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)
2014-11-13 17:34:53 157.55.39.60 /archives/896
Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)
2014-11-13 17:30:09 157.55.39.60 /archives/268
Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)
2014-11-13 17:27:59 157.55.39.40 /archives/857
Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)
2014-11-13 17:27:46 207.46.13.99 /archives/740/comment-page-1
Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)
2014-11-13 17:25:51 157.55.39.60 /archives/category/hadoop/page/2
Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)
那么限制搜索引擎爬取的第二个技巧就是在你的网站根目录下写一个.htaccess来限制:
SetEnvIfNoCase User-Agent "^Yisou" bad_bot
SetEnvIfNoCase User-Agent "^Easou" bad_bot
SetEnvIfNoCase User-Agent "^Youdao" bad_bot
SetEnvIfNoCase User-Agent "^msn" bad_bot
SetEnvIfNoCase User-Agent "^bingbot" bad_bot
Deny from env=bad_bot
这可以限制底层搜索引擎的爬取。
第三种限制搜索引擎的方法:很多网站服务器应该支持屏蔽某个IP。这种方法从效果上来说应该是最好的,而且是从底层限制的,但是这种方法有个缺点,就是你要知道你需要屏蔽的IP地址。目前我的博客已经屏蔽了Bing的部分IP。希望这些方法可以减轻网站的负担!
除非另有说明,否则本博客 文章 都是 原创!