You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Beautiful Soup提取网页价格返回None,求助排查问题

问题分析与解决

你的代码返回None,大概率是以下两种原因:

1. 页面价格是JS动态渲染的

requests.get()只能获取网页的静态HTML源码,如果目标价格是通过JavaScript动态加载的,静态源码里根本没有woocommerce-Price-amount amount这个类的元素,自然找不到。

验证方法:打印response.text,搜索字符串woocommerce-Price-amount amount,如果搜不到,就说明是动态加载问题。

解决办法:用Selenium这类工具模拟浏览器加载页面(浏览器会自动执行JS渲染内容),示例代码如下:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager

URL = "https://shop.beobasta.rs/proizvod/smrznuti-spanac/"

# 自动安装并启动Chrome浏览器
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))
driver.get(URL)

# 定位价格元素并打印文本
price_element = driver.find_element(By.CLASS_NAME, "woocommerce-Price-amount.amount")
print(price_element.text)

# 关闭浏览器
driver.quit()

2. 元素选择器不准确

可能网页结构更新,目标元素的class名称或标签类型发生了变化。

验证方法:打开目标网页,按F12打开开发者工具,用元素定位工具找到价格元素,核对它的标签和class是否还是span.woocommerce-Price-amount.amount。如果不是,修改代码里的find()参数即可。

比如如果现在价格元素的class变成了new-price-class,就改成:

price_element = soup.find("span", class_="new-price-class")

内容的提问来源于stack exchange,提问作者luna28blue

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 22:46:08