import requests
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import csv
import re
from datetime import datetime
while True:
market=str(input('请输入股票归属市场[沪市:hs; 通用:cn;输入0退出]:'))
if market==str(0):
break
number=str(input('请输入股票代码:'))
start_data=str(input('请输入搜索股票信息起始时间[YYmmdd]:'))
end_data=str(input('请输入搜索股票信息终止时间[YYmmdd]:'))
url = 'https://q.stock.sohu.com/hisHq?code='+market+'_'+str(number)+'&start='+str(start_data)+'&end='+str(end_data)+'&stat=1&order=D&period=d&callback=historySearchHandler&rt=jsonp&r=0.961714276380554&0.9362995550786029'
#print(url)
name=market+number+'.csv'
with open(name, "wb")as f:
f.write(requests.get(url).content)
with open(name, "r",encoding='ISO-8859-1')as f:
content=f.read()
content=content.split('],[');
df=pd.DataFrame(index=range(len(content)),columns=range(10))
for i in range(0,len(content)):
try:
columns=content[i].split('","')
df.iloc[i]=columns
except Exception as e:
pass
df.columns=['日期','开盘','收盘','涨跌额','涨跌幅','最低','最高','成交量(手)','成交额(万)','换手率']
try:
df["日期"]= df["日期"].str.split("\"", expand=True)[1]
df=df.dropna()
end_data= datetime.strptime(end_data, "%Y%m%d").date()
df.iloc[0,0]=end_data
except Exception as e:
print("输入股票信息错误,股票代码与所属市场不匹配,重新输入。"+'\n')
a=str(input("若要查看访问网址,请输入'check':"))
if a=='check':
print(url)
else:
continue
df["换手率"] = df["换手率"].str.split("\"", expand=True)[0]
df.to_csv(name,index=False)
print('该股票信息检索完成!')