Во-первых, вы всегда должны думать, где находится ваша начальная точка очистки.В этом случае https://www.blablacar.in/search-car-sharing выглядит довольно хорошо, так как есть ссылки на самые популярные маршруты.
Вот конвейер, по которому вы, возможно, захотите следовать:
- Объявитеspider.
- Установите
USER_AGENT
(в settings.py
) на что-то нестандартное, чтобы не получать 403 ответов. - Установите
DOWNLOAD_DELAY
на что-то вроде 0.5
иличтобы не быть забаненным (может потребоваться увеличить значение). - Добавить начальную точку к пауку:
start_urls = ['https://www.blablacar.in/search-car-sharing']
- Добавить метод
parse
, который будет выдавать запросы на маршрутизацию.страниц. - Добавьте метод
parse_route
, который будет выдавать информацию о поездках и следовать нумерации страниц.
Вот как может выглядеть метод parse
:
def parse(self, response):
for a_tag in response.css('.search-empty__meeting-points a'):
yield response.follow(a_tag, self.parse_route)
А вот parse_route
пример, который анализирует имя и дату поездки:
def parse_route(self, response):
for trip in response.css('.trip-search-results li'):
item = {}
item['name'] = trip.css('.ProfileCard-info--name::text').extract_first().strip()
item['date'] = trip.css('.description .time::attr(content)').extract_first()
yield item
for a_tag in response.css('.pagination .next:not(.disabled) a'):
yield response.follow(a_tag, self.parse_route)
Надеюсь, это даст вам интуицию о том, как решить задачу.