Очистка API

#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 для управления сеансом.