man
man
侠客
侠客
  • UID5
  • 粉丝0
  • 关注0
  • 发帖数15
阅读:134回复:4

个股季度信息定时下载并保存到StoneData里

楼主#
更多 发布于:2018-10-31 10:53
可以在客户端数据研究中调试代码,然后设置任务(前提:更新的数据必须与手动设置表的结构一致)
man
man
侠客
侠客
  • UID5
  • 粉丝0
  • 关注0
  • 发帖数15
沙发#
发布于:2018-10-31 10:54
from refresh import *
import pandas as pd
import csv
import time

def save_df(df):
    del df['序号']
    del df['公司财报']
    del df['招股书']

    for col in df.columns:
        try:
            df[col] = [a.replace(',',',') for a in df[col]]
        except:
            pass
    codes = []
    for i in df['股票代码']:
        while len(str(i))<6:
            i = str(0)+str(i)
        codes.append(i)
    df['股票代码'] = codes
    cols =[]
    for col in df.columns:
        if '主营业务收入' in col:
            col = '主营业务收入'
        if '净利润' in col:
            col = '净利润'
        cols.append(col)
    df.columns = cols
    df.to_csv('data.csv')


if __name__ == '__main__':
    num=4
    get_refresh_dates('manqi','个股季度信息')
    today = time.strftime('%Y-%m-%d',time.localtime(time.time()))
    reportTimes = list(pd.date_range('2017-01-01',today,freq='Q'))
    reportTimes = [str(a)[:10] for a in reportTimes]
    reportTimes.sort(reverse = True)
    for Time in reportTimes[:num]:
        for i in range(1,300):  # 爬取全部页数据
            url = 'http://s.askci.com/stock/a/?reportTime=%s&pageNum=%s' % (Time,str(i))
            tb = pd.read_html(url)[3] #经观察发现所需表格是网页中第4个表格,故为[3]
            if len(tb)==0:
                break
            tb['input_date'] = today
            if i == 1:
                df = tb
            else:
                df = pd.concat([df,tb],axis=0)

            print(Time+' 第'+str(i)+'页抓取完成')
        df['报告期'] = Time
        save_df(df)
man
man
侠客
侠客
  • UID5
  • 粉丝0
  • 关注0
  • 发帖数15
板凳#
发布于:2018-10-31 10:56
man:from refresh import *
import pandas as pd
import csv
import time

def save_df(df):
    del df['序号']
    del df['公司财报']
 ...
回到原帖
保存成py文件,必须以utf-8编码才可运行
man
man
侠客
侠客
  • UID5
  • 粉丝0
  • 关注0
  • 发帖数15
地板#
发布于:2018-10-31 10:57
先手动上传部分数据,设置好数据索引方式如上。
man
man
侠客
侠客
  • UID5
  • 粉丝0
  • 关注0
  • 发帖数15
4楼#
发布于:2018-10-31 11:03
man:from refresh import *
import pandas as pd
import csv
import time

def save_df(df):
    del df['序号']
    del df['公司财报']
 ...
回到原帖
用户可以修改每次回溯季度长度num,num=4表示回溯当期的前4个季度的个股信息。时间比较久,耐心等待
游客

返回顶部