#python #json #database #scrapy #web-crawler
#python #json #База данных #scrapy #веб-сканер
Вопрос:
Всем доброго утра,
Я пытаюсь собрать данные об автомобилях на этом сайте:https://www.caramigo.eu /
Для этого мне нужно запустить запрос в строке поиска домашней страницы для указанного местоположения и даты. Это предоставляет мне страницу, подобную этой: https://www.caramigo.eu/be/fr/recherche?address=Belgique, Wallonie, Liège, 4000, Liègeamp;date_debut=22-03-2019amp;date_fin=23-03-2019
Затем я могу восстановить данные в файле JSON благодаря инструменту разработчика моего веб-браузера и очистить их. Проблема в том, что файл JSON изменяется каждый раз, когда я запускаю запрос на новое местоположение, и находится по тому же URL (https://www.caramigo.eu/services/car).
У кого-нибудь есть идея о том, как я могу создать spider, который запустит запрос, получит файл JSON и очистит его? Или, может быть, о том, как я могу изменить данные в API напрямую, чтобы получить другие местоположения?
Заранее спасибо!
Комментарии:
1. Какими были бы ваши входные данные? У вас есть конкретное местоположение, для которого вы хотите очистить данные, или вы хотите получить все данные?
2. Ну, я хотел бы получить данные о характеристиках автомобиля, цене за аренду, … И я хотел бы выполнить очистку для всех городских центров моей страны, существует приблизительно 500 официальных городов.
Ответ №1:
Scrapy фильтрует запросы по уже посещенным URL-адресам, чтобы избежать циклов. Поскольку нужный вам ресурс всегда использует один и тот же URL, Scrapy отфильтрует его.
Но вы можете отключить это, используя dont_filter=True
в запросе. Например.:
yield scrapy.Request(
url='https://www.caramigo.eu/services/car',
dont_filter=True,
callback=self.parse_item
)
Комментарии:
1. Спасибо! У меня все еще есть проблема, но, возможно, это не входит в рамки этого вопроса. Поскольку мои данные хранятся по тому же адресу, как я могу использовать Scrapy для отправки запроса на изменение страницы? Я имею в виду, если я запущу поиск по Нью-Йорку, caramigo.eu/services/car отобразит информацию об автомобилях в Нью-Йорке, и она меняется для каждого города. Как я могу это сделать с помощью Scrapy? Заранее спасибо!
2. idk. Вы должны выяснить, как работает сайт. Если он хранится на сервере (он же с отслеживанием состояния), вам придется запрашивать страницу поиска для каждого города и использовать
cookiejar
для управления сеансом.