Я пытаюсь переопределить метод Scicing start_requests
, но безуспешно. Я уже успел перебирать страницы. Проблема в том, что теперь я должен итерации сначала через города, а не страницы.Переопределение start_requests - Scrapy не синхронно
Мой код выглядит следующим образом:
URL = "https://example.com/%s/?page=%d"
starting_number = 1
number_of_pages = 3
cities = [] # there are array of cities
selected_city = "..."
def start_requests(self):
for city in cities:
selected_city = city
print "####################"
print "##### CITY: " + selected_city + " #####"
for i in range(self.page_number, number_of_pages, +1):
print "##### page: " + str(i) + " #####"
yield scrapy.Request(url=(URL % (selected_city, i)), callback = self.parse)
print "####################"
В консоли я вижу, что, когда гусеничный начинает работать он печатает все города и страницы, и чем только начинают запросы. Поэтому в результате мой искатель анализирует только первый город. Они работают асинхронно, а мне нужно синхронно.
Каков правильный способ повторения в моем случае?
Спасибо за помощь!
сделал вы пытаетесь заменить '' yield' с return'? –
Нет. Моя проблема заключалась в том, что я использовал неправильную глобальную переменную 'selected_city' в остальном коде. –