抓取工具卡在Drupal的强制性agecheck页面上

时间:2009-08-19 10:18:16

标签: php drupal web-crawler restriction

我们在drupal中建立了一个大型社区网站,在您访问网站内容之前,该网站必须进行强制年龄检查

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

现在我们认为抓取工具卡在这一部分,他们被重定向到年龄检查,永远不会抓取整个网站。

之前有人有这个吗?什么是处理这类事情的最佳方式?

桑德

修改

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

下面的解决方案是我们也在网上传播的解决方案。如果将facebook抓取工具添加到该列表中,那么它将解决我们在这个agecheck页面遇到的所有问题。

2 个答案:

答案 0 :(得分:2)

您可以检查用户代理,如果是抓取工具,则不检查浏览器/用户是否具有所需的Cookie。

Here是一个示例:

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
}

答案 1 :(得分:0)

Gary Keith有一个php类,可用于检查访问者的所有属性(例如,浏览器或爬虫),该类还会自动更新浏览器的详尽ini文件。定期爬虫。还有一个drupal module,虽然我还没试过。