【发布时间】:2015-01-21 20:56:24
【问题描述】:
当每个页面加载到我的网站上时,我使用相同的 php 代码片段将它们作为新访问者添加到 mysql 数据库中,或者如果他们已经访问过,则更新数据库条目。我使用 cookie 来检查访问者是新的还是旧的。但是,在执行我的代码片段之前,我使用下面的代码来检查它是否是爬虫而不是人类。
但是这不起作用。我仍然从 googlebot 和 Facebook 获得数据库条目(所以总是返回 False?)。谁能告诉我我做错了什么?
function getIsCrawler() {
$agents = array(
"Google",
"google",
"facebook",
"Facebook",
"Bing",
"bing",
"yahoo",
"Yahoo",
"Twitter",
"twitter",
"Instagram",
"instagram"
);
foreach ($agents as $agent)
{
if(strpos($_SERVER['HTTP_USER_AGENT'], $agent))
{
return True;
}
}
return False;
}
$iscrawler = getIsCrawler();
if ($isCrawler == False)
{
//run php code snipit to handle visitors
}
【问题讨论】:
-
是否让网站对爬虫的操作有所不同会导致谷歌页面排名降低?
-
google bot 仍然可以正常访问该站点。我只是不想将它添加到数据库中。
-
在 PHP 中对所有访问者一视同仁可能更简单。然后,在数据库中,要么使用视图消除爬虫,要么使用每日 cron 作业将其删除。
-
或者只安装谷歌分析并使用 ti 完成
标签: php google-crawlers