soup.select возвращает пустой список. Нужна помощь в поиске источника кода css - PullRequest
0 голосов
/ 12 апреля 2020

В настоящее время я прохожу курс Удеми "Автоматизировать скучный материал", урок 40. Разбор HTML с модулем «Красивый суп». Через несколько минут Ал использует запросы html страницы amazon и использует soup.select с селектором цен, чтобы распечатать его. В настоящее время я пытаюсь сделать это с точно таким же кодом, за исключением использования заголовков с, кажется, необходимо, в противном случае я получаю ошибку сервера. Я прочитал несколько похожих вопросов, и общее решение, похоже, заключается в том, чтобы найти источник данных с помощью сетевой панели. К сожалению, я понятия не имею, как это сделать: /

import requests
import bs4
headers = {'User-Agent': 'Chrome'}
url = 'https://www.amazon.com/Automate-Boring-Stuff-Python-Programming-ebook/dp/B00WJ049VU/ref=tmm_kin_swatch_0?_encoding=UTF8&qid=&sr='
res = requests.get(url, headers=headers)
soup = bs4.BeautifulSoup(res.text, features='html.parser')
print(soup.select('#mediaNoAccordion > div.a-row > div.a-column.a-span4.a-text-right.a-span-last > span.a-size-medium.a-color-price.header-price'))

Ответы [ 2 ]

0 голосов
/ 13 апреля 2020

Для лучшего использования вы можете сделать inspect element и щелкнуть в верхнем левом углу на значке стрелки и активировать его. Затем вы можете навести курсор на элемент и выбрать. После выбора вы можете выбрать из копирования xpath / css selector / class / id

0 голосов
/ 12 апреля 2020

Вам нужно использовать более щадящий парсер. Вы также можете использовать более короткий и надежный селектор.

import requests
import bs4

headers = {'User-Agent': 'Chrome'}
url = 'https://www.amazon.com/Automate-Boring-Stuff-Python-Programming-ebook/dp/B00WJ049VU/ref=tmm_kin_swatch_0?_encoding=UTF8&qid=&sr='
res = requests.get(url, headers=headers)
soup = bs4.BeautifulSoup(res.text, features='lxml')
print(soup.select_one('.mediaTab_subtitle').text.strip())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...