python - Python & BeautifulSoup 4 - 无法获得新蛋的价格?
问题描述
我试图在 Newegg 产品页面上搜索价格,但我似乎总是遇到同样的问题——结果总是“无”。
以下是适用于亚马逊等类似网站的一些非常基本的代码行:
data = requests.get('https://www.newegg.com/Product/Product.aspx?Item=N82E16824475015&cm_sp=Homepage_Dailydeal-_-P1_24-475-015-_-03042019')
soup = BeautifulSoup(data.text, 'html.parser')
price = soup.find('li', class_='price-current').text.strip()
我期望得到 $419.99 作为输出,但我得到的是 None。
当我尝试获取产品标题时,我得到了想要的结果。只有价格给了我这个问题。有没有人有同样的问题,如何解决?提前致谢。
解决方案
您可以使用属性选择器来定位在其内容属性中包含该价格的元素。
import requests
from bs4 import BeautifulSoup
data = requests.get('https://www.newegg.com/Product/Product.aspx?Item=N82E16824475015&cm_sp=Homepage_Dailydeal-_-P1_24-475-015-_-03042019')
soup = BeautifulSoup(data.content, 'lxml')
price = soup.select_one('[itemprop=price]')['content']
print(price)
推荐阅读
- google-apps-script - Google 表格 insertImage 函数停止为 Google Apps 脚本工作:验证图像错误
- java - Keycloak:管理联合用户角色时的数据库死锁
- rust - 从 Rust 中的扫描码中检索与键盘布局无关的类型字符
- ios - Swift - 等待委托函数完成完成处理程序
- ruby-on-rails - 如何在我的 Rails 应用程序的“喜欢”索引页面上点赞曲目并查看所有喜欢的曲目?
- wear-os - Android 新 Wear OS 2.0 要求
- swift - 为什么在我的自定义 Swift 类中没有调用我的选择器函数
- laravel - 消息“CSRF 令牌不匹配。” 在使用 Laravel sanctum 令牌 API 时。拉拉维尔 8
- scala - 在无形中的产品上扩展选项 [_]
- java - Java 正则表达式名称验证