有谁知道如何告诉'facebookexternalhit'机器人传播其流量?
我们的网站每隔45-60分钟就会受到重创.每秒400个请求,来自facebook netblocks的20到30个不同的IP地址.在尖峰之间,交通不会消失,但负荷是可以接受的.当然我们不想阻止机器人,但这些高峰是有风险的.我们更愿意看到机器人随着时间的推移平均分配负载.并且看到它的行为就像Googlebot和朋友一样.
我已经看过相关的错误报告(第一个错误,第二个错误和第三个错误(#385275384858817)),但是找不到任何有关如何管理负载的建议.
Sti*_*ley 13
根据其他答案,来自Facebook的半官方消息是"吮吸它".令我难以理解的是他们无法跟踪爬行延迟(是的,我知道这不是一个"爬虫",但是几秒内GET'ing 100页是一个爬行,无论你想叫什么).
由于人们无法吸引他们的狂妄自大,而且他们的IP块的DROP非常严苛,这是我的技术解决方案.
在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)
您可以从命令行对此进行测试,例如:
$ rm index.html*; wget -U "facebookexternalhit/1.0 (+http://www.facebook.com/externalhit_uatext.php)" http://www.foobar.com/; less index.html
Run Code Online (Sandbox Code Playgroud)
欢迎改进建议......我猜他们可能会遇到一些并发问题.
我知道这是一个陈旧但没有答案的问题.我希望这个答案有助于某人.
有一个名为Open Graph的标签og:ttl,可以让你减慢Facebook抓取器发出的请求:( 参考)
抓取工具速率限制 您可以标记网页和对象,以更改Facebook抓取工具等待检查新内容的时间.
og:ttl如果我们的抓取工具过于激进,请使用object属性限制抓取工具访问.
检查对象属性,og:ttl以确定每个规范URL共享的默认ttl为30天.因此,如果随着时间的推移有大量共享对象,设置此ttl元标记只会降低请求速度.
但是,如果由于实际的实时流量(用户同时分享了很多故事)而被Facebook的抓取工具联系到了,那么这当然行不通.
您有太多爬虫请求的另一种可能性是,您的故事未使用正确的规范url(og:url)标记进行共享.假设您的用户可以从多个不同来源(实际上能够查看和共享相同的文章,但他们看到的网址不同)访问您网站上的某些文章,如果您没有og:url为所有这些文章设置相同的标记,Facebook会认为这是一篇不同的文章,因此会随着时间的推移生成对所有这些文件的爬虫请求,而不仅仅是针对唯一的规范URL.更多信息在这里.
希望能帮助到你.
| 归档时间: |
|
| 查看次数: |
8980 次 |
| 最近记录: |