def get_cashfl_m163(code): """ quotes.money.163.com 获取股票的买卖现金流量 """ df = pd.DataFrame() url = 'http://quotes.money.163.com/trade/lszjlx_{0},0.html'.format(code) while True: try: r = requests.get(url, headers=hds()) soup = BeautifulSoup(r.text, 'lxml') tb = soup.find('table', attrs={'class': "table_bg001 border_box"}) df = df.append(pd.read_html(str(tb))[0]) df = df.drop(0, axis=0) page = soup.find('a', text='下一页') url = 'http://quotes.money.163.com' + page.get('href') except: break df = df.set_index('日期') df = df.sort_index() df = df.applymap(lambda x: wc._tofl(x)) try: df['股票代码'] = df['股票代码'].map(lambda x: x.replace("'", '')) except: pass return df
def get_mk_data_m163(code): """ 获取股票的历史交易数据 """ df = pd.DataFrame() ty = dt.datetime.today().year #years=range(1998,ty+1) years = range(ty - 3, ty + 1) for year in years: for season in [1, 2, 3, 4]: url = 'http://quotes.money.163.com/trade/lsjysj_{2}.html?year={0}&season={1}'.format( year, season, code) try: #print(url) r = requests.get(url, headers=hds()) soup = BeautifulSoup(r.text, 'lxml') tb = soup.find( attrs={"class": "table_bg001 border_box limit_sale"}) df = df.append(pd.read_html(str(tb))[0]) #print(df.head()) except: pass df = df.drop(0, axis=0) df = df.set_index('日期') df = df.sort_index() df = df.applymap(lambda x: wc._tofl(x)) df['股票代码'] = df['股票代码'].map(lambda x: x.replace("'", '')) return df
def get_BCISCF_m163(code, bic='xjllb', mytype='report'): """ code:股票代码 bic:zcfzb(资产负债表),lrb(利润表),xjllb(现金流量表)三个参数 mytype:report, year,两个参数 """ url = wc.bic_url[mytype].format(code, bic) #print(url) r = requests.get(url, stream=True) text = r.text.replace('\r\n', '\n') #f=open('bic_%s_%s_%s.csv'%(code,bic,mytype),'w') #f.write(text) #f.close() df = pd.read_csv(StringIO(text), header=0) df = df.dropna(how='all', axis=1) #print(df.head()) name = list(df.columns) name = [s.strip() for s in name] df.columns = name df = df.set_index('报告日期') df = df.T df = df.applymap(lambda x: np.where(x == '--', np.nan, wc._tofl(x))) return df
def get_finance_summary_m163(code, mytype='report'): """ """ url = wc.finace_summary_url[mytype].format(code) r = requests.get(url, stream=True) text = r.text.replace('\r\n', '\n') #f=open('financesummary_%s_%s.csv'%(code,mytype),'w') #f.write(text) #f.close() df = pd.read_csv(StringIO(text), header=0) df = df.dropna(how='all', axis=1) df = df.set_index('报告期') df = df.T df = df.applymap(lambda x: np.where(x == '--', np.nan, wc._tofl(x))) return df
def get_trading_data_m163(code, start='20100101', end=dt.datetime.today().strftime('%Y%m%d')): """ code:股票代码 start:开始读取的日期,like 20100101. end: 截止的日期,like 20170620 """ if code[0] in ['0', '2']: url = wc.trading['sz'].format(code, start, end) elif code[0] in ['6', '9']: url = wc.trading['sh'].format(code, start, end) elif code[0] in ['3']: url = wc.trading['gme'].format(code, start, end) #print(url) r = requests.get(url, stream=True, headers=hds()) text = r.content.decode('gbk').replace('\r\n', '\n') #print(text) #f=open('trading_%s_%s_%s.csv'%(code,start,end),'w') #f.write(text) #f.close() df = pd.read_csv(StringIO(text), header=0) df = df.dropna(how='all', axis=1) #print(df.head()) name = list(df.columns) name = [s.strip() for s in name] df.columns = name try: df = df.set_index('日期') #del df['股票代码'] #df=df.T df = df.sort_index() df = df.applymap(lambda x: np.where(x == '--', np.nan, wc._tofl(x))) df['股票代码'] = df['股票代码'].map(lambda x: x.replace("'", '')) except: pass return df