쿠키

2014-04-28 4 views
1

내가, 내가 Scrapy을 사용하고 쿠키를 사용하는 웹 사이트를 긁어에 문제가를 사용하여 웹 사이트에서 작동하도록, Scrapy와 START_REQUEST를 사용하는 올바른 방법은 무엇입니까하지만 올바른쿠키

I 데이터를 얻을 수 없습니다 내가 브라우저에서 로그인 할 때이 실패

class DmozSpider(Spider): 
    name = "dmoz" 
    allowed_domains = ["dmoz.org"] 
    start_urls = [ 
     "http://www.dmoz.org/Computers/Programming/Languages/Python/Books/" 
    ] 

def parse(self, response): 
    request_with_cookies = Request(url="http://www.example.com", 
      cookies={'currency': 'USD', 'country': 'UY'},callback=self.parse_page2) 

def parse_page2(self, response): 
    sel = Selector(response) 
    print sel 

내가 어디 아무 생각 나는 몇 가지 가능한 솔루션을 시도하고 있었다
관련 정보를 표시, 도시를 선택하라고 요구하고 있기 때문에, 웹 사이트의 쿠키를 지정해야 예를 들어 start_request 함수를 사용할 수 있으므로 이러한 함수를 찾습니다.

class MySpider(BaseSpider): 
    name = "spider" 
    allowed_domains = "" 

def start_requests(self): 
    return [Request(url="http://www.example.com", 
     cookies={'currency': 'USD', 'country': 'UY'})] 
나는 이런 식으로 일을 해요,하지만이 가 어떻게 제대로 start_requests 기능을 처리해야 올바른 방법으로하고있어 경우에 나는 확실하지 않다

? request_with_cookies 함수를 올바르게 처리하려면 어떻게해야합니까? URL에 쿠키를 지정하는 올바른 방법은 무엇입니까? 내가 start_requests 또는 requests_with_cookies를 사용할 때 나는 수업이

name = "dmoz" 
allowed_domains = ["dmoz.org"] 
start_urls = ["http://www.dmoz.org/Computers/Programming/Languages/Python/Books/"] 

을해야합니까?

답변

2

봅니다과 같이뿐만 아니라 (쿠키가 너무 헤더이다) 요청에 headers 매개 변수를 설정합니다 :

Request(..., headers = {'Cookie': 'currency=USD&country=UY'}, ...) 

또한 Requestmeta 매개 변수에 dont_merge_cookies 옵션을 활성화를 시도 할 수 있습니다 :

Request(..., meta = {'dont_merge_cookies' : True}, ...) 

이렇게하면 크롤러가 사이트에서 설정 한 다른 쿠키를 무시하고이를 "병합"으로 재정의 할 수있는 경우에만 사용하도록합니다.

사이트 작동에 따라 문제가 발생할 수 있으므로 문제가 해결되는지 차례대로 시도해보십시오.

+0

고맙습니다. 내가 추천 한 것을 시도해 보겠습니다. – user3236034