Smu*_*dge 10 facebook web-crawler facebook-wall
我们在过去一周左右开始运营一个URL缩短器,我们开始看到{normal url}/no_facebook_preview_picture.jpg来自Facebook拥有的IP和用户代理的许多奇怪的请求facebookexternalhit/1.0 (+http://www.facebook.com/externalhit_uatext.php)
如果我在我的墙上发布我们站点的正常链接(设置为Only Me我可以测试),我在访问日志中获得以下条目
66.220.152.6 - - [05/Feb/2013:16:31:36 +0000] "GET /44_U HTTP/1.1" 200 1314 "-" "facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)" "-"
Run Code Online (Sandbox Code Playgroud)
但是,如果我发布一个返回404或410的链接(创建后删除垃圾链接),我会得到这个
69.171.237.15 - - [05/Feb/2013:16:49:16 +0000] "GET /notexistURL HTTP/1.1" 404 1319 "-" "facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)" "-"
Run Code Online (Sandbox Code Playgroud)
然后在一个小时左右
173.252.110.113 - - [05/Feb/2013:17:15:15 +0000] "GET /notexistURL/no_facebook_preview_picture.jpg HTTP/1.1" 404 0 "-" "facebookexternalhit/1.0 (+http://www.facebook.com/externalhit_uatext.php)" "-"
Run Code Online (Sandbox Code Playgroud)
该IP的WhoIs报告
NetName FACEBOOK-INC
NetHandle NET-173-252-64-0-1
Run Code Online (Sandbox Code Playgroud)
所以他们肯定是Facebook的IP.
我们每天都会收到大约10-20个这样的请求,都是相同的.我们只能获得7天的日志文件,但这些请求发生在7天前.
我已经测试了独特的链接,因此没有其他方法可以找到该链接.我没有亲自使用Facebook,除了我的测试链接之外的所有链接都是由其他用户创建/发布的,但我认识到链接到我的Facebook帐户的所有应用程序并没有什么不寻常的,所以我不认为这是第三方应用程序(我可以提供一个列表,如果需要,但他们都是大牌应用程序)
在我检查日志文件期间,Facebook甚至似乎没有智能地创建这些请求,它只是盲目地将字符串粘贴在/no_facebook_preview_picture.jpgURL的末尾,即使使用查询字符串也是如此.例如;
69.171.228.114 - - [05/Feb/2013:17:19:13 +0000] "GET /iAmNotARealURL1234777?ref=fb&cows_go=moo HTTP/1.1" 404 1118 "-" "facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)" "-"
69.171.228.114 - - [05/Feb/2013:17:19:13 +0000] "GET /iamnotarealurl1234777 HTTP/1.1" 404 1118 "-" "facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)" "-"
173.252.103.4 - - [05/Feb/2013:17:44:41 +0000] "GET /iAmNotARealURL1234777?ref=fb&cows_go=moo/no_facebook_preview_picture.jpg HTTP/1.1" 404 1118 "-" "facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)" "-"
Run Code Online (Sandbox Code Playgroud)
Google似乎显示了大量随机结果,主要来自链接发起人,但我找不到任何有关这些请求的信息.
这些要求是什么?Facebook需要什么?这是我们的应用程序中的错误还是可以安全地忽略这些请求?
更新:
有些日子,我们现在对这些网址的点击次数达到2-3次
[sr@ns309372 nginx]$ for DAYLOG in `find ./ | grep "dftbashort.log-"`; do COUNT=`cat $DAYLOG | grep no_facebook_preview_picture | wc -l`; echo "${DAYLOG} has ${COUNT} occurences"; done
./dftbashort.log-20130201 has 0 occurences
./dftbashort.log-20130130 has 2 occurences
./dftbashort.log-20130129 has 2 occurences
./dftbashort.log-20130128 has 2 occurences
./dftbashort.log-20130202 has 378 occurences
./dftbashort.log-20130207 has 222 occurences
./dftbashort.log-20130205 has 257 occurences
./dftbashort.log-20130209 has 178 occurences
./dftbashort.log-20130131 has 2 occurences
./dftbashort.log-20130203 has 266 occurences
./dftbashort.log-20130206 has 667 occurences
./dftbashort.log-20130204 has 12 occurences
./dftbashort.log-20130127 has 4 occurences
./dftbashort.log-20130208 has 260 occurences
Run Code Online (Sandbox Code Playgroud)
我们不提供任何开放图元标记,并且页面除了元/ javascript重定向之外没有其他内容.
我很确定这是共享抓取工具试图构建您的 URL 的预览,通过Facebook 的调试工具运行该 URL ,您将看到 Facebook 看到/正在寻找的内容
我不确定请求/notexistURL/no_facebook_preview_picture.jpg是什么,假设您的代码中没有任何内容指向此类 URL;如果我不得不猜测,我会说这是没有元标记时使用的某种默认或后备;可能是一个错误 - 我相当有信心,如果您为 Facebook 添加正确的元标记,它会抓取这些元标记,并且不会发出无效请求,并且您的 URL 共享在 Facebook.com 和其他支持的网站上看起来更好,这是一个额外的好处相同的标签
| 归档时间: |
|
| 查看次数: |
1391 次 |
| 最近记录: |