#scrapy #web-crawler
#scrapy #веб-сканер
Вопрос:
Доброе утро!
Я разработал очень простой spider с помощью Scrapy, просто чтобы привыкнуть к FormRequest. Я пытаюсь отправить запрос на эту страницу:https://www.caramigo.eu / что должно привести меня к странице, подобной этой: https://www.caramigo.eu/be/fr/recherche?address=Belgique, Liègeamp;date_debut=16-03-2019amp;date_fin=17-03-2019 . Проблема в том, что мой spider неправильно запрашивает страницу (изображения автомобилей и информация вообще не отображаются), и поэтому я не могу собрать с нее какие-либо данные. Вот мой паук:
import scrapy
class CarSpider(scrapy.Spider):
name = "caramigo"
def start_requests(self):
urls = [
'https://www.caramigo.eu/'
]
for url in urls:
yield scrapy.Request(url=url, callback=self.search_line)
def search_line(self, response):
return scrapy.FormRequest.from_response(
response,
formdata={'address': 'Belgique, Liège', 'date_debut': '16-03-2019', 'date_fin': '17-03-2019'},
callback=self.parse
)
def parse(self, response):
filename = 'caramigo.html'
with open(filename, 'wb') as f:
f.write(response.body)
self.log('Saved file %s' % filename)
Извините, если синтаксис неправильный, я довольно новичок в программировании.
Заранее благодарю вас!
Комментарии:
1. Этот веб-сайт использует Javascript для отображения интерфейса. Scrapy не может самостоятельно отображать какой-либо Javascript. Вам нужно либо использовать Scrapy Splash для рендеринга Javascript, либо альтернативно очистить их API (например caramigo.eu/services/car ).
2. Большое спасибо за ваш ответ! Теперь мне интересно, как мне получить API для каждого запроса, который я сделаю? Я имею в виду, что на домашней странице я должен запустить запрос на местоположение и дату. После этого мне нужен API. У вас есть какой-нибудь намек на то, как я могу это реализовать?
3. Вам необходимо использовать инструменты разработчика вашего браузера для проверки этих вызовов API по мере их выполнения. Например, отправьте форму, а затем посмотрите, какие значения отправлены. Вот краткое руководство из документации Scrapy: docs.scrapy.org/en/latest/topics /…
4. Еще раз большое спасибо!