利用deepseek爬取股票交易实时数据

以下是一个使用Python爬取股票交易数据的示例代码,使用第三方库和公开数据接口实现:

import requests
import pandas as pd
import datetime

# 方法一:使用AKShare库(推荐)
def get_stock_data_ak(stock_code):
    """
    使用AKShare获取股票历史数据
    参数:stock_code 格式:sh600000(沪市)或sz000001(深市)
    """
    try:
        import akshare as ak
        df = ak.stock_zh_a_hist(symbol=stock_code, adjust="qfq")
        return df
    except Exception as e:
        print(f"获取数据失败:{str(e)}")
        return None

# 方法二:直接爬取新浪财经接口
def get_stock_data_sina(stock_code):
    """
    使用新浪财经接口获取历史数据
    参数:stock_code 格式:sh600000 或 sz000001
    """
    url = f"https://finance.sina.com.cn/realstock/company/{stock_code}/hisdata/klc_kl.js"
    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"
    }
    
    try:
        response = requests.get(url, headers=headers)
        response.encoding = 'utf-8'
        js_data = response.text.split('=')[1].strip()
        data = eval(js_data)
        
        # 解析数据
        df = pd.DataFrame(data, columns=["date", "open", "high", "low", "close", "volume"])
        df['date'] = pd.to_datetime(df['date'])
        return df
    except Exception as e:
        print(f"获取数据失败:{str(e)}")
        return None

# 使用方法示例
if __name__ == "__main__":
    # 使用AKShare(需要先安装:pip install akshare)
    stock_code = "sh600000"  # 上证指数示例
    data_ak = get_stock_data_ak(stock_code)
    print("AKShare获取的数据:")
    print(data_ak.head())

    # 使用新浪接口
    data_sina = get_stock_data_sina(stock_code)
    if data_sina is not None:
        print("\n新浪接口获取的数据:")
        print(data_sina.head())
        # 保存到CSV
        data_sina.to_csv(f"{stock_code}_history.csv", index=False)
  1. 需要安装的库
pip install requests pandas akshare
  1. 股票代码格式
  • 沪市股票:sh600000(浦发银行)
  • 深市股票:sz000001(平安银行)
  • 指数:sh000001(上证指数)
  1. 包含的数据字段
  • 日期(date)
  • 开盘价(open)
  • 最高价(high)
  • 最低价(low)
  • 收盘价(close)
  • 成交量(volume)

如果需要获取实时数据,可以使用以下方法:

def get_realtime_price(stock_code):
    """获取股票实时报价"""
    url = f"http://hq.sinajs.cn/list={stock_code}"
    response = requests.get(url)
    data = response.text.split(",")
    return {
        "名称": data[0].split('"')[1],
        "今开": float(data[1]),
        "昨收": float(data[2]),
        "当前价": float(data[3]),
        "最高": float(data[4]),
        "最低": float(data[5]),
        "更新时间": f"{data[30]} {data[31]}"
    }

发布者:股市刺客,转载请注明出处:https://www.95sca.cn/archives/949267
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!

(0)
股市刺客的头像股市刺客
上一篇 17分钟前
下一篇 16分钟前

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注