首页 > 解决方案 > 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。

当我尝试获取产品标题时,我得到了想要的结果。只有价格给了我这个问题。有没有人有同样的问题,如何解决?提前致谢。

标签: pythonweb-scrapingbeautifulsoup

解决方案


您可以使用属性选择器来定位在其内容属性中包含该价格的元素。

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)

推荐阅读