(Я задал этот вопрос в Google-группе Scrapy без удачи.)
Я пытаюсь войти в Facebook, используя Scrapy. Я попробовал следующее в интерактивной оболочке:
Я установил заголовки и создал запрос следующим образом:
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)
Я перенаправлен:
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>
Я думаю, это не должно быть перенаправлено туда, если я предоставляю право
заголовки?
Я все еще пытаюсь пойти дальше и предоставить данные для входа, используя
FormRequest следующим образом:
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) приводит к:
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>
.
Что мне здесь не хватает? Спасибо за любые предложения и помощь.
Я добавлю, что я также попробовал это с BaseSpider, чтобы увидеть, было ли это результатом того, что куки не передаются в оболочке, но там это тоже не работает.
Мне удалось использовать Mechanize для успешного входа в систему. Могу ли я воспользоваться этим, чтобы как-то передать куки в Scrapy?