- 找到url
开发者工具——网络——右键搜索——输入任意股票代码——得到网址
- 获取网页里的信息,会发现里面是该页的所有股票数据
得到网址之后,双击网址,会在开发者工具里弹出网页内容,也可以通过浏览器查看,会发现里面是该页的所有股票数据
- 把网页里的信息进行修改,得到严格的json格式
否则无法用json.loads()方法直接进行解析
- 解析JSON
简单来讲就是一层层剥开嵌套的字典
import requests
import json
url="http://98.push2.eastmoney.com/api/qt/clist/get?cb=jQuery112407816884040759451_1680222278443&pn=1&pz=20&po=1&np=1&ut=bd1d9ddb04089700cf9c27f6f7426281&fltt=2&invt=2&wbp2u=|0|0|0|web&fid=f3&fs=m:0+t:6,m:0+t:80&fields=f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f12,f13,f14,f15,f16,f17,f18,f20,f21,f23,f24,f25,f22,f11,f62,f128,f136,f115,f152&_=1680222278444"
res = requests.get(url)
result = res.text.split("jQuery112407816884040759451_1680222278443")[1].split("(")[1].split(");")[0]
result_json = json.loads(result)
# print(result_json)
data = result_json['data']['diff']
date='2022-07-28'
with open("stock_data_%s.csv" % date, "a+", encoding='gbk') as f:
f.write("股票代码,股票名称,最新价,涨跌幅,涨跌额,成交量(手),成交额,振幅,换手率,市盈率,量比,最高,最低,今开,昨收,市净率\n")
for i in data:
Code = i["f12"]
Name = i["f14"]
Close = i['f2']
ChangePercent = i["f3"]
Change = i['f4']
Volume = i['f5']
Amount = i['f6']
Amplitude = i['f7']
TurnoverRate = i['f8']
PERation = i['f9']
VolumeRate = i['f10']
Hign = i['f15']
Low = i['f16']
Open = i['f17']
PreviousClose = i['f18']
PB = i['f22']
row = '{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{}'.format(
Code,Name,Close,ChangePercent,Change,Volume,Amount,Amplitude,
TurnoverRate,PERation,VolumeRate,Hign,Low,Open,PreviousClose,PB)
f.write(row)
f.write('\n')