采集股票数据第一篇

个人博客原文传送门点击前往

#### 我们利用2个提供数据获取社区来达到目的
- [Tushare](https://tushare.pro)金融大数据开放社区(需要注册)
- [证券宝](http://baostock.com)是一个免费、开源的证券数据平台(无需注册)。

#### 下面上python代码
> 安装下面模块应该不必多说
> 创建数据库gupiao
> 运行下面代码就会得到gp_list_info这张包含所有股票基本信息的表(你也可以存成文件,那就不会要pymysql,sqlalchemy模块)
> 注意事项:如果安装tushare后,运行报错bs4什么的,你要安装这个模块beautifulsoup4
````
#Tushare金融大数据开放社区
import tushare as ts
#操作数据库模块
import pymysql
from sqlalchemy import create_engine

ts.set_token('你的token')
pro = ts.pro_api()
#查询当前所有正常上市交易的股票列表
data = pro.stock_basic(exchange='', list_status='L', fields='ts_code,symbol,name,area,industry,fullname,enname,market,exchange,curr_type,list_status,list_date,delist_date,is_hs')

#连接数据库
engine = create_engine('mysql+pymysql://root:@localhost:3306/gupiao?charset=utf8')

# 插入数据
data.to_sql('gp_list_info',con=engine,if_exists='append',index=False)
````
> 接下来我们试着获取一下baostock提供的数据(用这个主要是没限制,但我没找到获取所有股票列表的接口,所以用上面那个获取一下)
> 获取【季频盈利能力】
````
#证券宝www.baostock.com是一个免费、开源的证券数据平台(无需注册)。
import baostock as bs
import pandas as pd
import pymysql
from sqlalchemy import create_engine
import time;

# 登陆系统
lg = bs.login()

#链接数据库
engine = create_engine('mysql+pymysql://root:@localhost:3306/gupiao')
#获取股票代码列表
sql = ''' select ts_code from gp_list_info; '''
df = pd.read_sql_query(sql, engine)
# 查询季频估值指标盈利能力

year = [2007,2008,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018]
quarter = [1,2,3,4]
for index,row in df.iterrows():
    #这里由于2个编码不一致,转换一下
    code = row['ts_code'].split('.')
    code = code[1]+'.'+code[0]
    for i in range(0,len(year)):
        for j in range(0,4):            
            rs_profit = bs.query_profit_data(code=code, year=year[i], quarter=quarter[j])
            profit_list = []
            while (rs_profit.error_code == '0') & rs_profit.next():
                rs_profit.fields.append('year')
                rs_profit.fields.append('quarter')
                rs_profit.fields.append('ctime')
                row_data = rs_profit.get_row_data()
                row_data.append(year[i])
                row_data.append(quarter[j])
                row_data.append(int(time.time()))
                profit_list.append(row_data)
                result_profit = pd.DataFrame(profit_list, columns=rs_profit.fields)
                # 插入数据
                result_profit.to_sql('gp_profit',con=engine,if_exists='append',index=True)
    print(index)
# 登出系统
bs.logout()
````
> OK,运行完后就可以得到2007-2018所有季度的盈利能力数据了
    原文作者:lnews
    原文地址: https://blog.csdn.net/qq_29065191/article/details/88538225
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞