Webscraper не получает текст - PullRequest
0 голосов
/ 31 марта 2020

Я пытаюсь получить статус (приостановлен или нет) указанной публикации c, но текст не отображается, и я не знаю, как его получить

В настоящее время у меня есть этот код, который работает для других элементов этой же страницы:

from bs4 import BeautifulSoup as bs
import requests

r = requests.get("https://articulo.mercadolibre.com.ar/MLA-610621665-camara-web-hp-spare-431392-001-y-446486-001-_JM")
soup = bs(r.content, 'html.parser')
status=soup.find("p",{"class":"item-status-notification__title"}).text
print(status)

Что я хочу получить, так это указать этот c статус («publicación pausada» переводится как «приостановленная публикация»):

enter image description here

Который, проверяя элемент, хранится в p классе item-status-messages__title

enter image description here

но когда я говорю BS извлечь его текст, он возвращает пробелы

Что не так с этим подходом?

enter image description here

1 Ответ

1 голос
/ 31 марта 2020

Вы возвращаете первое совпадение p с этим классом, а то, что вы хотите извлечь, это третье, поэтому вам нужно использовать лучший селектор:

from bs4 import BeautifulSoup as bs
import requests

r = requests.get("https://articulo.mercadolibre.com.ar/MLA-610621665-camara-web-hp-spare-431392-001-y-446486-001-_JM")
soup = bs(r.content, 'html.parser')
status=soup.select_one('section[class="item-status bg-alt"] p.item-status-notification__title').text.strip()

print(status)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...