Python实现股票信息查询

本文介绍了如何使用Python编程,通过requests模块访问腾讯行情和新浪行情的CTPAPI接口,以及如何查询股票代码并计算单个和批量股票的市值。主要涉及了stockfinder脚本创建股票代码字典,以及lianghua-2.py和stockshizhiquery-2.py中市值查询功能的实现。
摘要由CSDN通过智能技术生成

目前两个常用的股票信息CPI:
腾讯行情CTPAPI接口源码
新浪行情CTPAPI
使用requests模块爬取股票信息,这里以查询股票市值为例。

一、根据股票名称查询股票代码

在python文件夹下设置两个表格GPLIST.xlsx,其中是A股全部代码和股票名称,query_stock_names.xlsx`是要查询的股票名称

stockfinder-3.py

import openpyxl  
  
def create_stock_dict(file_path):  
    stock_dict = {}  
    wb = openpyxl.load_workbook(filename=file_path)  
    ws = wb.active  
    for row in ws.iter_rows(values_only=True):  
        stock_dict[row[1]] = row[0]  
    return stock_dict  
  
def get_stock_code(stock_name, stock_dict):  
    return stock_dict.get(stock_name, "Not Found")  
  
def main():  
    stock_dict = create_stock_dict('GPLIST.xlsx')  
  
    wb = openpyxl.load_workbook(filename='query_stock_names-1.xlsx')  
    ws = wb.active  
    for row in ws.iter_rows(min_row=1, min_col=1, max_col=1, values_only=True):  
        stock_name = row[0]  
        stock_code = get_stock_code(stock_name, stock_dict)  
        ws.cell(row=ws.max_row+1, column=2, value=stock_code)  
  
    wb.save('query_stock_names-1.xlsx')  
  
if __name__ == "__main__":  
    main()

二、股票市值查询

1.单个股票市值查询
lianghua-2.py

import requests  
from dateutil import parser  
from datetime import datetime,time  
from time import sleep  
  
  
def get_tick(stock_code):  
    if stock_code[0] in ['5','6']:  
        prefix = 'sh'  
    elif stock_code[0] in ['0','3']:  
        prefix = 'sz'  
    else:  
        raise Exception('prefix')  
    page = requests.get('http://qt.gtimg.cn/q='+prefix+stock_code)  
    stock_info = page.text  
    stock_info = stock_info.split('~')  
    open_ = float(stock_info[5])# string  
    high = float(stock_info[33])  
    low = float(stock_info[34])  
    close = float(stock_info[3])  
    shizhi = float(stock_info[45])  
    trade_datetime = parser.parse(stock_info[30]) #将string格式解析成日期格式  
    return shizhi  
  
  
if __name__ == "__main__":  
    stock_c = '601088'  
    print(get_tick(stock_c))

2.批量股票市值查询
stockshizhiquery-2.py

import requests  
import openpyxl  
  
def get_tick(stock_code):  
    if stock_code[0] in ['5', '6']:  
        prefix = 'sh'  
    elif stock_code[0] in ['0', '3']:  
        prefix = 'sz'  
    else:  
        raise Exception('Invalid stock code prefix')  
    page = requests.get('http://qt.gtimg.cn/q=' + prefix + stock_code)  
    stock_info = page.text  
    stock_info = stock_info.split('~')  
    shizhi = float(stock_info[45]) if stock_info[45] else 0.0  # 如果市值为空,则设为0  
    return shizhi  
  
  
    # 打开 Excel 文件  
workbook = openpyxl.load_workbook('query_stock_names-1.xlsx')  
  
    # 获取第一个工作表  
sheet = workbook.active  
  
    # 获取每支股票的市值,并将其追加到第三列  
for row in sheet.iter_rows(min_row=1, values_only=True):  # 假设股票代码在第一列,从第二行开始读取数据  
  
        stock_code = str(row[0])  
        shizhi = get_tick(stock_code)  
        # sheet.append([shizhi])  
        sheet.cell(row=sheet.max_row + 1, column=3, value=shizhi)  
  
  
workbook.save('query_stock_names-1_updated.xlsx')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值