Facebook和Robots.txt中的Crawl-delay?

art*_*ung 11 seo facebook robots.txt

Facebook的网络浏览机器人是否尊重文件中的Crawl-delay:指令robots.txt

Bra*_*vis 12

不,它不尊重robots.txt

与此处的其他答案相反,facebookexternalhit的行为类似于最卑鄙的爬虫.无论它是通过爬行还是从类似的按钮获取的网址,当它以疯狂的速度通过每一个时都无关紧要.

我们有时会得到几百次点击,因为它几乎遍布我们网站上的每个网址.它每次都会杀死我们的服务器.有趣的是,当发生这种情况时,我们可以看到Googlebot放慢速度并等待事情稳定下来然后慢慢恢复.另一方面,facebookexternalhit继续砸我们的服务器,通常比杀死我们的最初回合更难.

我们必须运行比我们实际需要的更强大的服务器,因为facebookexternalhit.我们已经进行了大量的搜索,无法找到减慢速度的方法.

Facebook的用户体验如何?


Sti*_*ley 5

对于类似的问题,我提供了一种技术解决方案,该解决方案仅基于用户代理对负载进行速率限制。

为方便起见,此处重复了以下代码:

由于无法吸引他们的狂妄自大,并且DROP'ing他们的IP块是非常严酷的,因此这是我的技术解决方案。

在PHP中,针对每个请求尽快执行以下代码。

define( 'FACEBOOK_REQUEST_THROTTLE', 2.0 ); // Number of seconds permitted between each hit from facebookexternalhit

if( !empty( $_SERVER['HTTP_USER_AGENT'] ) && preg_match( '/^facebookexternalhit/', $_SERVER['HTTP_USER_AGENT'] ) ) {
    $fbTmpFile = sys_get_temp_dir().'/facebookexternalhit.txt';
    if( $fh = fopen( $fbTmpFile, 'c+' ) ) {
        $lastTime = fread( $fh, 100 );
        $microTime = microtime( TRUE );
        // check current microtime with microtime of last access
        if( $microTime - $lastTime < FACEBOOK_REQUEST_THROTTLE ) {
            // bail if requests are coming too quickly with http 503 Service Unavailable
            header( $_SERVER["SERVER_PROTOCOL"].' 503' );
            die;
        } else {
            // write out the microsecond time of last access
            rewind( $fh );
            fwrite( $fh, $microTime );
        }
        fclose( $fh );
    } else {
        header( $_SERVER["SERVER_PROTOCOL"].' 503' );
        die;
    }
}
Run Code Online (Sandbox Code Playgroud)


Jef*_*ock -4

我们没有爬虫。我们有一个抓取工具,可以抓取具有类似按钮/在 FB 上共享的页面上的元数据。

  • “这取决于‘是’这个词的含义是什么。” 谢谢你的不回答。无论你怎么称呼它,在几秒钟内拉取 100 个页面都是一次爬行。显然,这个“抓取工具”发疯了,开始拉下很多与发布的链接无关的页面。或者 FB 正在悄悄创建一个谷歌的搜索竞争对手。或者也许其他人的爬虫正在执行外部 LIKE 按钮?一些疯狂的事情正在发生。 (16认同)
  • 这不是一个特别有用的答案。我们已经在 Facebook 的服务器上看到了大量类似爬虫/蜘蛛的行为。请求的发送率可能被视为滥用,导致数据库锁定等。 (3认同)
  • 根据您自己的文档,您确实有一个爬虫:https://developers.facebook.com/docs/sharing/webmasters/crawler (3认同)
  • 请注意 Facebook 系统中这个长期存在且令人憎恶的错误,它既会发送没有 UA (GROSS) 的抓取流量,也会发送大量抓取流量,从而导致您的网站瘫痪 https://developers.facebook.com/bugs/1654459311255613/ (2认同)
  • 而且这里的粗略答案是 1)没有在答案中指定您在 FB 中的角色,因为您说“我们”。2)对语言吹毛求疵,你本可以澄清而不是轻蔑。3)根本不回答这个问题,因为显然需要的信息是“抓取器”是否尊重“爬行延迟”。如果您认为“抓取延迟”的答案并不重要,因为它是一个“抓取工具”,那么您就是那种让与这些 Facebook 机器人打交道成为噩梦的 Facebook 员工。 (2认同)