Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 爬虫程序卡在Drupal中的强制agecheck页面上_Php_Drupal_Web Crawler_Restriction - Fatal编程技术网

Php 爬虫程序卡在Drupal中的强制agecheck页面上

Php 爬虫程序卡在Drupal中的强制agecheck页面上,php,drupal,web-crawler,restriction,Php,Drupal,Web Crawler,Restriction,我们在drupal中建立了一个大型社区网站,在您访问网站内容之前,该网站必须进行年龄检查 它检查cookie是否存在,如果不存在,您将被重定向到agecheck页面 现在我们相信爬虫程序会被困在这一部分,他们会被重定向到agecheck,而永远不会抓取整个网站 以前有人吃过这个吗?处理这样的事情最好的办法是什么 砂光机 编辑 我很抱歉现在只提这件事, 爬虫程序的一个问题是,当社区中的某个人在facebook上的墙上发布了一些东西时,facebook会将页面爬回以获取图像和描述(在meta标记中指

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

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

现在我们相信爬虫程序会被困在这一部分,他们会被重定向到agecheck,而永远不会抓取整个网站

以前有人吃过这个吗?处理这样的事情最好的办法是什么

砂光机

编辑

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


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

您可以检查用户代理,如果是爬虫,则不检查浏览器/用户是否具有所需的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
}

有一个php类,可以用来检查访问者的所有属性(例如浏览器或爬虫),该类还可以定期自动更新浏览器和爬虫的详尽ini文件。虽然我还没有尝试过,但也有一个新的方法。

“该网站有一个强制的年龄检查”——可能是有原因的。你想在搜索引擎上显示什么样的信息?所有页面的“过滤”版本?只有一部分页面,甚至可能只有一个索引文件?添加facebook爬虫程序是否有助于解决facebook问题?(请参阅我的编辑)是的,这也将解决您与facebook链接的问题。要了解facebook使用的用户代理,您可以将所有未通过cookie测试的请求记录到数据库或文件中,然后尝试在facebook上发布链接。然后,您将在数据库中找到用户代理字符串。