Xpath верен, но Scrapy Spider не работает

#xpath #scrapy

#xpath #scrapy

Вопрос:

Я пытаюсь загрузить с веб-страницы, определяю выражение XPath и затем запускаю spider, но ничего не загружается. Веб-страница: https://octopart.com/electronic-parts/integrated-circuits-ics Вот код:

 for product in response.xpath("//div[@class='serp-card-header media']/div[@class='media-body']"):
        yield {'name': product.xpath("//a/span[@class='part-card-manufacturer']/text()").extract_first()}
  

Ответ №1:

Похоже, что этот веб-сайт использует какое-то простое обнаружение бота. Скорее всего, вы используете пользовательский агент scrapy по умолчанию. Поэтому вместо этого вам нужно установить реальный пользовательский агент в вашем settings.py :

 USER_AGENT = '[replace with a real user agent]'
  

Обратитесь к документации.

Выполнив это, вы получите некоторые результаты. Однако ваш XPath также неверен. Внутри цикла for, когда вы выполняете относительный XPath, он должен начинаться с .//a/span... . Смотрите здесь, почему: https://docs.scrapy.org/en/latest/topics/selectors.html#working-with-relative-xpaths

Комментарии:

1. Какой пользовательский агент вы предлагаете для этой цели?

2. @Joanna Любой из лучших из приведенных здесь (исключая очевидных ботов): browser-info.net/useragents