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

使用BeautifulSoup采集网页数据时无法提取目标价格值问题求解

问题原因

  • 语法作用域与执行顺序错误
    你定义的price变量是test()函数内的局部变量,函数外无法直接访问;同时代码的执行顺序是先执行print(price)再调用test(),就算没有作用域问题也无法正常拿到返回值。
  • 缺请求头触发网站反爬
    目标站点对无合法请求头的爬虫请求会返回阉割版页面,对应pc-lowest-1节点的内容默认就是-,和你浏览器中看到的渲染后页面结构不一致。
  • 文本提取方式稳定性低
    直接用get_text()提取会包含节点内多余的空格、img标签附属的空文本,优先提取data-price自定义属性值准确性更高。

修复后可运行代码

import requests
from bs4 import BeautifulSoup

URL = 'https://www.futbin.com/22/player/426'
# 添加模拟浏览器的请求头,绕过基础反爬
HEADERS = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
    "Referer": "https://www.futbin.com/"
}

def test():
    page = requests.get(URL, headers=HEADERS)
    soup = BeautifulSoup(page.content, 'html.parser')
    price_node = soup.find(id="pc-lowest-1")
    # 优先提取data-price属性值
    if price_node:
        price = price_node.get("data-price")
        # 如果一定要提取节点内文本,替换为下行即可:
        # price = price_node.get_text(strip=True)
        return price
    return None

# 先调用函数拿到返回值再打印
price = test()
print(price)

内容的提问来源于stack exchange,提问作者HPA Informática

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 19:54:07