toshare获取所有A股数据(复权数据)

本文介绍如何使用Python的tushare库批量下载股票数据。通过获取股票列表并利用循环逐个下载指定时间段内的前复权股票数据,最后将数据保存为CSV文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

# 数据接口调用
import tushare as ts
pro= ts.pro_api()

# stock_basic()获取所有,股票列表
Data = pro.stock_basic(exchange='', list_status='L', fields='ts_code,symbol,name,area,industry,list_date')
print('获得上市股票总数:', len(Data)-1)

# 截取所有股票编号
stocks=Data['ts_code']

j = 1
for i in list(stocks):
    # 1.通过股票编号i,ts.pro_bar()获取股票i前复权信息,时间2010~2021
    data = ts.pro_bar(ts_code=i, adj='qfq', start_date='20100101', end_date='20211231')

    # 2.保存数据
    data.to_csv('E:\QuantDate/test/' + i + '.csv', index = False)

    # 3.进度打印
    print('正在获取第%d家,股票代码%s.' % (j, i))
    j+=1

前提:1.tushare注册账号,并获得个人的token(数据获取权限)

           2.python环境(这个不多讲)

 

运行效果:

 

注:如果觉得有用话,点个赞吧!

### 如何通过API或爬虫获取中国A市场的完整数据 #### 使用API接口获取A市场数据 可以通过已有的第三方API服务来快速获取A市场的完整数据。例如,`http://api.mairui.club` 提供了一个较为全面的接口用于查询沪深A公司的基本信息[^1]。 以下是基于Python实现的一个简单示例代码: ```python import requests def fetch_stock_introduction(stock_code, licence_key): url = f"http://api.mairui.club/hscp/gsjj/{stock_code}/{licence_key}" response = requests.get(url) if response.status_code == 200: data = response.json() return data else: return {"error": "Failed to fetch stock introduction"} # 调用方法 stock_data = fetch_stock_introduction("000001", "LICENCE-66D8-9F96-0C7F0FBCD073") print(stock_data) ``` 上述代码展示了如何利用特定URL结构化请求获取单只票的公司简介信息。如果要批量获取所有A数据,则需先获得完整的票列表,并逐一调用该接口。 --- #### 利用爬虫技术抓取A数据 对于某些未提供公开API的情况,可以采用网络爬虫的方式从目标网站提取所需数据。例如,在东方财富网数据中心页面上存在大量关于A的基础资料[^2]。下面是一个简单的Python爬虫脚本案例: ```python import requests from urllib.parse import urlencode def crawl_a_share_basic_info(page_num=1): base_url = "https://datacenter-web.eastmoney.com/api/data/v1/get?" params = { 'sortColumns': 'TRADE_DATE', 'sortTypes': '-1', 'pageSize': '50', # 每页记录数 'pageNumber': str(page_num), # 当前页码 'reportName': 'RPT_ASHARE_BASEINFO' } headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)'} full_url = base_url + urlencode(params) try: resp = requests.get(full_url, headers=headers) json_result = resp.json() if json_result['result'] is not None and isinstance(json_result['result']['data'], list): return json_result['result']['data'] except Exception as e: print(f"Error occurred while fetching page {page_num}: {e}") return [] # 测试函数 a_shares_list = [] for i in range(1, 3): # 假设仅测试第一页和第二页的内容 a_shares_list.extend(crawl_a_share_basic_info(i)) if len(a_shares_list) > 0: for item in a_shares_list[:5]: print(item["SECURITY_CODE"], "-", item["SECURITY_NAME"]) else: print("No A-share basic info found.") ``` 此段程序会向指定地址发送GET请求并解析返回JSON中的具体字段值作为最终结果输出。需要注意的是实际应用过程中可能还需要处理分页逻辑以及异常情况等问题。 --- #### 结合两种方式的优势 当单独依靠某一种手段无法满足需求时,可考虑将两者结合起来使用——即优先尝试访问官方授权过的RESTful API;只有在遇到限制或者缺失部分功能的时候才转而依赖于自定义开发出来的Web Scraper工具去补充剩余的信息缺口[^3][^4]。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值