Чтобы сканировать URL, вам нужно yield
Request
объект.Так что ваши обратные вызовы синтаксического анализа должны либо:
- Получить словарь /
Item
- это конец цепочки сканирования.Элемент генерируется, он отправляется через конвейеры и, наконец, сохраняется где-то, если у вас есть такая настройка. - Получите объект
Request
- он все еще продолжает цепочку сканирования до другого обратного вызова.
Пример этого процесса:
- url1 сканирования (2)
- url2 для сканирования (2)
- единица дохода (1)
Ваш паук в этом случае должен выглядеть следующим образом:
def parse(self, response):
title = response.xpath('//h1/text()').extract_first()
yield {'title': title}
next_url = 'https://stackoverflow.com/users'
yield Request(url=next_url, callback=self.parse_some)
И ваши конечные результаты ползут с scrapy crawl spider -o output.json
:
# output.json
[
{'title': 'title1'},
{'title': 'title2'}
]