我很想知道Facebook上我的每個朋友的朋友數量。顯然官方的Facebook API不允許朋友的朋友,所以我需要繞過這個(某種合理的)限制。我試過以下內容:用Python刮臉Facebook
import sys
import urllib, urllib2, cookielib
username = '[email protected]'
password = 'mypassword'
cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
login_data = urllib.urlencode({'email' : username, 'pass' : password})
request = urllib2.Request('https://login.facebook.com/login.php')
request.add_header('User-Agent','Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.12) Gecko/20101027 Fedora/3.6.12-1.fc14 Firefox/3.6.12')
opener.open(request, login_data)
resp = opener.open('http://facebook.com')
print resp.read()
但我只能以驗證碼頁面結束。任何想法FB如何檢測請求不是來自「普通」瀏覽器?我可以添加額外的步驟並解決驗證碼,但這會增加程序的不必要的複雜性,所以我寧願避免它。當我使用具有相同用戶代理字符串的Web瀏覽器時,我沒有收到驗證碼。
另外,沒有人有任何關於如何完成我的目標,即獲得朋友的朋友列表的任何更清晰的想法?
有趣的發現。我認爲他們可能會默認顯示驗證碼,然後用JS隱藏它,但是當我嘗試在FF中禁用JS時,似乎並非如此。然而,要查看我的朋友的朋友,它似乎需要AJAX,這也將是禁止的。 – mpen 2010-11-28 17:41:41