Estoy intentando acceder a la cookie de sesión dentro de una araña. La primera vez que conecto a una red social utilizando en una araña:Cookie de sesión de acceso en scrap spiders
def parse(self, response):
return [FormRequest.from_response(response,
formname='login_form',
formdata={'email': '...', 'pass':'...'},
callback=self.after_login)]
En after_login
, me gustaría tener acceso a las cookies de sesión, con el fin de pasarlos a otro módulo (selenio aquí) para procesar aún más la página con una sesión autenticada
me gustaría algo así:
def after_login(self, response):
# process response
.....
# access the cookies of that session to access another URL in the
# same domain with the autehnticated session.
# Something like:
session_cookies = XXX.get_session_cookies()
data = another_function(url,cookies)
Desafortunadamente, response.cookies
no devuelve las cookies de sesión.
¿Cómo puedo obtener las cookies de sesión? Estaba mirando el middleware de cookies: scrapy.contrib.downloadermiddleware.cookies y scrapy.http.cookies pero no parece haber ninguna forma directa de acceder a las cookies de sesión.
Algunos más detalles aquí acerca de mi pregunta original:
Por desgracia, he usado su idea pero DIND'T ver las cookies, aunque sé con seguridad que existe desde el scrapy.contrib.downloadermiddleware .cookies ¡middleware imprime las cookies! Estas son exactamente las cookies que quiero capturar.
Así que aquí es lo que estoy haciendo:
El after_login (sí, la respuesta) método recibe la variable de respuesta después de la autenticación correcta, y luego acceder a una dirección URL con los datos de sesión:
def after_login(self, response):
# testing to see if I can get the session cookies
cookieJar = response.meta.setdefault('cookie_jar', CookieJar())
cookieJar.extract_cookies(response, response.request)
cookies_test = cookieJar._cookies
print "cookies - test:",cookies_test
# URL access with authenticated session
url = "http://site.org/?id=XXXX"
request = Request(url=url,callback=self.get_pict)
return [request]
Como la salida siguiente muestra, de hecho hay galletas, pero no logran captar con CookieJar:
cookies - test: {}
2012-01-02 22:44:39-0800 [myspider] DEBUG: Sending cookies to: <GET http://www.facebook.com/profile.php?id=529907453>
Cookie: xxx=3..........; yyy=34.............; zzz=.................; uuu=44..........
así que me gustaría conseguir un diccionario que contiene las claves xxx, yy y etc. con los valores correspondientes.
Gracias :)
¿Entiendo correctamente que desea autenticar en facebook, pero raspar los datos de un dominio diferente ser autenticado en Facebook? – warvariuc