python - 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 提取其文本时,它会返回空格
这种方法有什么问题?
解决方案
您正在返回 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)
推荐阅读
- python - Django 不会迁移 app_label 下的多个模型?
- vue.js - 在 nuxt 中针对不同情况使用不同的环境
- amazon-web-services - 带有 aws 弹性豆茎的 Bitbucket CI/CD 管道
- css - Angular --prod 标志分解组件样式表
- acumatica - acumatica 中的此错误消息来自哪里
- docker - 无法在 docker 中形成嵌入式 Hazelcast 喷气机集群
- android - 在 Flutter 中管理帖子中的错误
- javascript - 如何固定元素的位置但相对于容器
- visual-studio - 无法在 Visual Studio 中编辑空项目的属性
- javascript - 将 setTimeout 应用于 p5.js 中的递归树