Я пытаюсь получить доступ к куки-файлу сессии в паук. Я сперва войти в социальную сеть, используя в пауке:Доступ к сеансу cookie в scrapy spiders
def parse(self, response):
return [FormRequest.from_response(response,
formname='login_form',
formdata={'email': '...', 'pass':'...'},
callback=self.after_login)]
В after_login
, я хотел бы получить доступ к кукам сессии для того, чтобы передать их в другой модуль (селен здесь) для дальнейшей обработки страницы с аутентифицированный сеанс.
Я хотел бы что-то вроде этого:
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)
К сожалению, response.cookies
не возвращает куки сессии.
Как я могу получить файлы cookie сеанса? Я смотрел на промежуточное программное обеспечение для печенья: scrapy.contrib.downloadermiddleware.cookies и scrapy.http.cookies, но, похоже, нет простого способа получить доступ к сеансовым файлам cookie.
Некоторые подробности здесь бой мой первоначальный вопрос:
К сожалению, я использовал вашу идею, но я dind't увидеть печенье, хотя я знаю, что они существуют, так как scrapy.contrib.downloadermiddleware .cookies промежуточное программное обеспечение распечатывает файлы cookie! Это именно те куки, которые я хочу захватить.
Так вот что я делаю:
after_login (сам, ответ) метод получает переменную отклика после надлежащей проверки подлинности, а затем получить доступ к URL с данными сеанса:
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]
Поскольку выходной сигнал ниже показывает, действительно есть печенье, но я не в состоянии захватить их с 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..........
Так что я хотел бы получить словарь, содержащий ключи ххх, уу y и т. д. с соответствующими значениями.
Спасибо :)
ли я правильно понимаю, что вы хотите проверить подлинность на Facebook, но скрести данные из другого домена, проверка подлинности на Facebook? – warvariuc