0

我们在 drupal 中构建了一个大型社区网站,在您访问网站内容之前,该网站有一个强制性的年龄检查

它检查是否存在 cookie,如果不存在,您将被重定向到 agecheck 页面。

现在我们相信爬虫会卡在这部分,他们会被重定向到年龄检查,并且永远无法爬取整个网站。

有没有人有过这个?处理这样的事情的最佳方法是什么?

桑德

编辑

我很抱歉现在只提到这一点,爬虫的问题之一是,当社区中的某个人在 Facebook 上的墙上发布一些东西时,Facebook 会爬回页面以获取图像和描述(在元标记中指定)但是facebook 也被重定向到 agecheck 页面。如果我添加 facebook 爬虫,useragentcheck 会起作用吗?如果是这样:那么有人会知道 facebook 爬虫的确切名称吗?

下面的解决方案也是我们在网上遇到的一个问题。如果将 facebook 爬虫添加到该列表中有效,那么它将解决我们在此 agecheck 页面上遇到的所有问题。

4

2 回答 2

2

您可以检查用户代理,如果它是爬虫,则不检查浏览器/用户是否具有所需的 cookie。

是一个示例:

function crawlerDetect($USER_AGENT)
{
    $crawlers_agents = ‘Google|msnbot|Rambler|Yahoo|AbachoBOT|accoona|AcioRobot|ASPSeek|CocoCrawler|Dumbot|FAST-WebCrawler|GeonaBot|Gigabot|Lycos|MSRBOT|Scooter|AltaVista|IDBot|eStyle|Scrubby’;

    if ( strpos($crawlers_agents , $USER_AGENT) === false )
       return false;
}

// example

$crawler = crawlerDetect($_SERVER[’HTTP_USER_AGENT’]);

if ($crawler )
{
   // it is crawler, it’s name in $crawler variable
}
else
{
   // usual visitor
}
于 2009-08-19T10:22:43.180 回答
0

Gary Keith有一个 php 类,您可以使用它来检查访问者的所有属性(例如,浏览器或爬虫),并且该类还定期自动更新浏览器和爬虫的详尽 ini 文件。还有一个drupal 模块,虽然我没有尝试过。

于 2009-08-20T00:55:46.360 回答