거미 내의 세션 쿠키에 액세스하려고합니다.치료 스파이더의 세션 쿠키에 액세스하십시오.
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
는 세션 쿠키를 반환하지 않습니다
나는 그런 일을하고 싶습니다.
세션 쿠키는 어떻게 구할 수 있습니까? 나는 쿠키 미들웨어를보고 있었다 : scrapy.contrib.downloadermiddleware.cookies과 scrapy.http.cookies 그러나 세션 쿠키에 접근하는 간단한 방법은없는 것 같다.
내 원래의 질문 한판 승부가 여기에 좀 더 세부 정보 :
불행하게도, 당신의 아이디어를 사용하지만 난 그들이 scrapy.contrib.downloadermiddleware 때문에 존재하는지 확실히 알고 있지만 나는 쿠키를 참조 dind't .cookies 미들웨어가 쿠키를 출력하지 않습니다! 이것들은 제가 꼭 잡고 싶어하는 쿠키입니다.
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..........
그래서 나는 키 XXX를 포함하는 사전을 좀하고 싶습니다 y 등을 해당 값과 비교합니다.
감사합니다 :)
내가 페이스 북에 인증되는 당신이 페이스 북에 인증 할 것인지 제대로 이해하지만 다른 도메인에서 데이터를 긁어합니까? – warvariuc