Je suis intéressé à obtenir le nombre d'amis que chacun de mes amis sur Facebook a. Apparemment, l'API officielle de Facebook ne permet pas d'avoir des amis d'amis, donc je dois contourner cette limitation (quelque peu sensible) d'une manière ou d'une autre. J'ai essayé ce qui suit:Grattez Facebook en Python
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()
mais je finis seulement avec une page captcha. Une idée de la façon dont FB détecte que la requête ne provient pas d'un navigateur "normal"? Je pourrais ajouter une étape supplémentaire et résoudre le captcha, mais cela ajouterait une complexité inutile au programme, donc je préfère l'éviter. Lorsque j'utilise un navigateur Web avec la même chaîne User-Agent, je n'obtiens pas de captcha.
Ou bien quelqu'un a-t-il des idées plus saines sur la façon d'atteindre mon objectif, c'est-à-dire obtenir une liste d'amis d'amis?
Trouver intéressant. Je pensais qu'ils pourraient afficher le captcha par défaut et le cacher ensuite avec JS, mais quand j'essaye de désactiver JS dans FF, cela ne semble pas être le cas. Cependant, pour voir les amis de mon ami, cela semble nécessiter AJAX, ce qui serait également prohibitif. – mpen