#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