搜索引擎如何抓取网页(那些搜索引擎照常爬取你网站!不遵循robots.txt文件规范)
优采云 发布时间: 2021-09-27 20:16搜索引擎如何抓取网页(那些搜索引擎照常爬取你网站!不遵循robots.txt文件规范)
自上周以来,错误请求(无效主机名)错误经常出现在我的博客上。问了网站服务器厂商才知道网站的并发性太高,服务器厂商限制了网站的访问。不过我每天都会查看网站的流量统计。没有异常。并发度怎么会太高?后来查了一下网站的搜索引擎爬取网站的日志,发现每分钟都有大量的页面被搜索引擎爬取!难怪网站的并发量太高了!!
但是大家都知道搜索引擎收录网站对我们来说是件好事。我们不能禁止所有的搜索引擎抓取,所以我们可以设置一些抓取规则来限制。通过我对流量来源的分析,每天有很多来自百度和谷歌的流量,但几乎没有来自其他搜索引擎的流量。我可以阻止这些不会带来流量的搜索引擎。我想到的第一种方法是在网站的根目录下写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 地址。目前我的博客已经屏蔽了必应的部分IP。希望这些方法可以减轻网站的负担!
本博客文章除特别声明外,均为原创!