(Ich habe diese Frage in der Scrapy-Google-Gruppe gestellt, ohne Erfolg).
Ich versuche, mich mit Scrapy bei Facebook anzumelden. Ich habe das Folgende in der interaktiven Shell ausprobiert:
Ich habe die Kopfzeilen gesetzt und eine Anfrage wie folgt erstellt:
header_vals={'Accept-Language': ['en'], 'Content-Type': ['application/
x-www-form-urlencoded'], 'Accept-Encoding': ['gzip,deflate'],
'Accept': ['text/html,application/xhtml+xml,application/xml;q=0.9,*/
*;q=0.8'], 'User-Agent': ['Mozilla/5.0 Gecko/20070219 Firefox/
2.0.0.2']}
login_request=Request('https://www.facebook.com/login.php',headers=header_vals)
fetch(login_request)
Ich werde umgeleitet:
2011-08-11 13:54:54+0530 [default] DEBUG: Redirecting (meta refresh)
to <GET https://www.facebook.com/login.php?_fb_noscript=1> from <GET
https://www.facebook.com/login.php>
. . .
[s] request <GET https://www.facebook.com/login.php>
[s] response <200 https://www.facebook.com/login.php?_fb_noscript=1>
Ich denke, es sollte nicht dorthin umgeleitet werden, wenn ich die richtige Kopfzeilen liefere?
Ich versuche immer noch, die Anmeldedaten mit der FormRequest wie folgt:
new_request=FormRequest.from_response(response,formname='login_form',formdata={'email':'...@email.com','pass':'password'},headers=header_vals)
new_request.meta['download_timeout']=180
new_request.meta['redirect_ttl']=30
fetch(new_request) ergibt:
2011-08-11 14:05:45+0530 [default] DEBUG: Redirecting (meta refresh)
to <GET https://www.facebook.com/login.php?login_attempt=1&_fb_noscript=1>
from <POST https://www.facebook.com/login.php?login_attempt=1>
.
.
[s] response <200 https://www.facebook.com/login.php?login_attempt=1&_fb_noscript=1>
.
Was übersehe ich hier? Danke für jede Anregung und Hilfe.
Ich füge hinzu, dass ich dies auch mit einem BaseSpider versucht habe, um zu sehen, ob dies ein Ergebnis der Cookies war, die nicht in der Shell weitergegeben wurden, aber es funktioniert auch dort nicht.
Ich konnte mich mit Mechanize erfolgreich anmelden. Kann ich diesen Vorteil nutzen, um irgendwie Cookies an Scrapy weiterzugeben?