首页 > 解决方案 > Webscraper 没有得到文本

问题描述

我正在尝试检索特定出版物的状态(暂停与否),但文本似乎没有显示,我不知道如何获取它

我目前有这段代码,它适用于同一页面的其他元素:

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)

我想要得到的是这个特定的状态(“publicación pausada”翻译为“暂停发布”):

在此处输入图像描述

其中,检查元素,存储在p 类 item-status-notification__title下

在此处输入图像描述

但是当我告诉 BS 提取其文本时,它会返回空格

这种方法有什么问题?

在此处输入图像描述

标签: pythonhtmlweb-scrapingbeautifulsoup

解决方案


您正在返回 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)

推荐阅读