【发布时间】:2014-04-11 21:59:13
【问题描述】:
我们有一个电子商务网站。由于一些营销和促销活动,如果用户第一次访问基于 cookie 的网站,我们会在主页上显示应用下载页面/横幅/促销/大图(仅此而已)。
但我不希望机器人/爬虫看到这个内容(大图),而是他们应该看到设置 cookie 后的真实内容。两个内容的 URL 相同。
我可以进一步澄清这一点。如何避免机器人看到促销内容?
【问题讨论】:
我们有一个电子商务网站。由于一些营销和促销活动,如果用户第一次访问基于 cookie 的网站,我们会在主页上显示应用下载页面/横幅/促销/大图(仅此而已)。
但我不希望机器人/爬虫看到这个内容(大图),而是他们应该看到设置 cookie 后的真实内容。两个内容的 URL 相同。
我可以进一步澄清这一点。如何避免机器人看到促销内容?
【问题讨论】:
您需要一个robots.txt 文件。
来自Wikipedia:
机器人排除标准(也称为机器人排除协议或 robots.txt 协议)是一种约定,它建议合作的网络爬虫和其他网络机器人访问网站的全部或部分内容,而这些网站原本可以公开查看。搜索引擎经常使用机器人对网站进行分类和存档,或者网站管理员使用机器人来校对源代码。该标准不同于站点地图,但可以与站点地图结合使用,站点地图是网站的机器人收录标准。
请记住,如果机器人是“邪恶的”,它们可以简单地忽略这些指令;但是,只要您正确设置,Google 和其他搜索引擎都应该遵守它。
【讨论】:
现在我正在使用这个函数来检测 php 控制器代码中的机器人/爬虫,并根据需要进行重定向。
function bot_detected()
{
if
(
!isset($_SERVER['HTTP_USER_AGENT'])
||
empty($_SERVER['HTTP_USER_AGENT'])
||
preg_match('/bot|crawl|slurp|spider/i', $_SERVER['HTTP_USER_AGENT'])
||
preg_match('/scrappy/python/httpclient/Googlebot|DoCoMo|YandexBot|bingbot|ia_archiver|AhrefsBot|Ezooms|GSLFbot|WBSearchBot|Twitterbot|TweetmemeBot|Twikle|PaperLiBot|Wotbox|UnwindFetchor|facebookexternalhit/i', $_SERVER['HTTP_USER_AGENT'])
)
{
return TRUE;
}
return FALSE;
}
【讨论】: