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

如何用Python的BeautifulSoup提取指定Span标签中的股票价格值

解决方案

问题原因

目标页面的股票价格是通过JavaScript动态渲染生成的,使用requests直接请求只能获取到未渲染的静态HTML源码,无法获取浏览器执行JS后生成的动态内容,因此找不到对应的<span>标签。

方法一:使用Selenium模拟浏览器渲染

通过模拟真实浏览器加载页面,等待JS执行完成后提取内容:

  1. 安装依赖:
pip install selenium
  1. 下载与浏览器版本匹配的驱动(如ChromeDriver),配置到环境变量或指定路径。

  2. 示例代码:

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

url = "https://www.isyatirim.com.tr/tr-tr/analiz/hisse/Sayfalar/sirket-karti.aspx?hisse=SASA"

# 初始化Chrome浏览器
driver = webdriver.Chrome()
driver.get(url)

try:
    # 等待目标价格元素加载完成(根据页面CSS定位)
    price_element = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.CSS_SELECTOR, "span.value.up"))
    )
    stock_price = price_element.text
    print(f"股票价格:{stock_price}")
finally:
    driver.quit()

方法二:直接调用API接口(更高效)

分析页面网络请求,找到获取股票数据的API接口,直接请求解析:

示例代码:

import requests
import json

url = "https://www.isyatirim.com.tr/_layouts/15/IsYatirim.Website/Common/Data.aspx/GetStockQuote"
payload = json.dumps({"symbol": "SASA"})
headers = {'Content-Type': 'application/json'}

response = requests.post(url, headers=headers, data=payload)
data = response.json()

# 提取并格式化价格
stock_price = data['d']['LastPrice']
formatted_price = f"{stock_price:,}".replace(".", ",")
print(f"股票价格:{formatted_price}")

注:API接口可能随网站更新变化,若失效可通过浏览器开发者工具的网络面板重新查找对应请求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 10:50:41