Scrapy возвращает с некоторых страниц None вместо элементов
Обхожу с помощью Scrapy сайт классификация-туризм.рф, контент не динамический, возвращается одним get запросом.
Алгоритм следующий: один парсер собирает ссылки на объекты и перебирает страницы, второй парсер собирает ссылки на объекты и собирает на них параметры.
Проблема в том что Scrapy на ~3 из 10 страниц возвращает None вместо значений, при каждом запуске паука страницы рандомные. Пробовал ставить заглушку в виде time.sleep(), не помогает.
В консоли посмотрел, все ссылки возвращают код 200 и спокойно открываются с нужным контентом если их открыть из консоли.
Ниже пример кода паука:
name = 'hotels_list_spider'
start_urls = ['https://классификация-туризм.рф/displayAccommodation/index?Accommodation[FullName]=&Accommodation[Region]=Калужская+область&Accommodation[Key]=&Accommodation[OrganizationId]=&Accommodation[CertificateNumber]=&Accommodation[Inn]=&Accommodation[Ogrn]=&Accommodation[SolutionNumber]=&yt0=Найти']
def parse(self, response):
"""
Функция парсит ссылки на объекты на страницах и передаёт в функцию parse_hotel_page
"""
hotels_links = response.css('a.object-title::attr(href)')
yield from response.follow_all(hotels_links, self.parse_hotel_page)
def parse_hotel_page(self, response):
"""
Функция парсит страницы объектов и возвращает их параметры
"""
yield {
'id': response.css('div.detail-field > span.detail-value::text').get(),
'hotel': response.css('title::text').get()
}
А вот пример собранных данных:
{"id": "550035937", "hotel": "Гостиница «Smart Hotel KDO Калуга» ООО «Петровский Альянс»"}
{"id": "550035861", "hotel": "ФКУ «Загородный дом приемов «Русичи» МВД России»"}
{"id": "550035865", "hotel": "Гостиница «Бест Вестерн Калуга Отель» «Best Western Kaluga Hotel» ООО «БВ-Калуга»"}
{"id": "550035096", "hotel": "Гостиница «ДОНЖОН» ИП Сапегин А.Л."}
{"id": null, "hotel": null}
{"id": "550034701", "hotel": "Гостиница «Триумф Отель» ООО «Триумф Отель»"}
{"id": null, "hotel": null}
{"id": "550034598", "hotel": "ГОСТИНИЦА\t«Региональный центр с местами для проживания спортсменов» ГБУ КО \"СШОР \"Олимп\""}
{"id": "550034143", "hotel": "Гостиница \"Союз\" ИП Артамонова Л.И."}
{"id": null, "hotel": null}