2016-09-07 2 views
2

제품 가격이 표시된 통화가 GBP의 경우 /en-GB/이고 AUD의 경우 /en-AU/을 통해 설정되는 통화로 제품을 크롤링하고 있습니다. 내 고객이 두 항목을 하나의 항목으로 원합니다.두 페이지의 데이터가 하나의 항목으로

파이프 라인을 사용하여 DB에 넣을 수 있기 때문에 이후에 결합하면 실행 가능하지 않습니다. 어쨌든이 일을하는 치료법이 있습니까?

답변

2

http://doc.scrapy.org/en/latest/topics/request-response.html#passing-additional-data-to-callback-functions

def parse_page1(self, response): 
    item = MyItem() 
    item['price_GBP'] = response.xpath("//foo/bar").extract_first() 
    request = scrapy.Request("http://www.example.com/en-AU/", 
          callback=self.parse_page2) 
    request.meta['item'] = item 
    yield request 

def parse_page2(self, response): 
    item = response.meta['item'] 
    item['price_AUD'] = response.xpath("//foo/bar").extract_first() 
    yield item 
관련 문제