Нужен пример в scrapy о том, как получить ссылку с одной страницы, затем перейти по этой ссылке, получить дополнительную информацию со связанной страницы и объединить некоторые данные с первой страницы.
Частично заполните свой элемент на первой странице и поместите его в мету вашего запроса.Когда вызывается обратный вызов для следующей страницы, он может принять частично заполненный запрос, поместить в него дополнительные данные и затем вернуть его.
Более подробная информация о передаче meta объектов данных и запросов специально описана в этой части документации:
meta
http://readthedocs.org/docs/scrapy/en/latest/topics/request-response.html#passing-additional-data-to-callback-functions
Этот вопрос также относится к: Scrapy: перейдите по ссылке, чтобы получить дополнительные данные товара?
Пример из scrapy documntation
def parse_page1(self, response): item = MyItem() item['main_url'] = response.url request = scrapy.Request("http://www.example.com/some_page.html", callback=self.parse_page2) request.meta['item'] = item return request def parse_page2(self, response): item = response.meta['item'] item['other_url'] = response.url return item
Немного иллюстрации кода документации Scrapy
def start_requests(self): yield scrapy.Request("http://www.example.com/main_page.html",callback=parse_page1) def parse_page1(self, response): item = MyItem() item['main_url'] = response.url ##extracts http://www.example.com/main_page.html request = scrapy.Request("http://www.example.com/some_page.html",callback=self.parse_page2) request.meta['my_meta_item'] = item ## passing item in the meta dictionary ##alternatively you can follow as below ##request = scrapy.Request("http://www.example.com/some_page.html",meta={'my_meta_item':item},callback=self.parse_page2) return request def parse_page2(self, response): item = response.meta['my_meta_item'] item['other_url'] = response.url ##extracts http://www.example.com/some_page.html return item