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

使用Requests与BeautifulSoup无法获取正确商品折扣价求助

解决Checkers网站抓取折扣价不一致的问题

嘿,这个问题我碰到过好多次啦!你遇到的情况是典型的静态请求和动态渲染的差异——浏览器里<span class="now">显示的R17.59是页面加载完成后通过JavaScript动态渲染出来的,但requests只会获取服务器返回的初始HTML,不会执行页面里的JS,所以拿到的是原价R21.99。

下面给你几个靠谱的解决思路:

1. 直接抓取后端API(推荐)

电商网站大多会用后端接口返回商品数据,再用JS渲染到页面上。你可以通过浏览器开发者工具找到这个数据源:

  • 打开浏览器F12切换到「Network」标签,刷新页面
  • 过滤「XHR/Fetch」请求,找和商品列表、价格相关的接口(通常是JSON格式)
  • 复制这个接口的URL、请求头(尤其是User-Agent、Referer,避免被反爬拦截)
  • 用requests直接请求这个API,就能拿到包含折扣价的原始数据了

举个简化的代码示例:

import requests

# 替换成你找到的真实请求头和API地址
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36',
    'Referer': 'https://www.checkers.co.za/c-2256/All-Departments?q=%3Anovelty&page=0'
}
api_url = "https://www.checkers.co.za/xxx/api/products"

response = requests.get(api_url, headers=headers)
products = response.json()

# 从返回的JSON里提取折扣价,具体字段看API返回结构
for product in products:
    print(f"折扣价: {product['price']['discounted']}")

2. 使用无头浏览器执行JS

如果网站没有单独的API接口,那就只能用能模拟浏览器执行JS的工具,比如selenium或playwright。这里用selenium举个例子:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# 无头模式运行,不弹出浏览器窗口
options = Options()
options.add_argument('--headless=new')
driver = webdriver.Chrome(options=options)

# 目标页面URL
url = 'https://www.checkers.co.za/c-2256/All-Departments?q=%3Anovelty&page=0'
driver.get(url)

# 等待页面加载完成,确保折扣价元素已经渲染
wait = WebDriverWait(driver, 10)
wait.until(EC.presence_of_element_located((By.CLASS_NAME, 'now')))

# 提取所有商品的折扣价
price_elements = driver.find_elements(By.CLASS_NAME, 'now')
for elem in price_elements:
    print(f"当前显示价格: {elem.text.strip()}")

driver.quit()

注意事项

  • 别频繁请求网站,设置合理的请求间隔,避免触发反爬机制被封禁IP
  • 有些网站的API可能需要携带特定的Cookie或参数,记得在开发者工具里仔细核对
  • 电商网站的接口和页面结构可能会不定期更新,要定期检查你的爬虫是否还能正常工作

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 00:38:14