用 Python 爬取股票实时数据(用力活着)

网友投稿 500 2022-08-23


用 Python 爬取股票实时数据(用力活着)

今天我们一起来学习一个 Python 爬虫实战案例,我们的目标网站就是东方财富网,废话不多说,开搞

网站分析

东方财富网地址如下

​​F12 来查看网络请求情况,可以很容易的发现,网页上的数据都是通过如下地址请求的

​​requestsjson_url = "= requests.get(json_url)

数据处理

接下来我们观察返回的数据,可以看出数据并不是标准的 json 数据

于是我们先进行 json 化

result = res.text.split("jQuery112402508937289440778_1658838703304")[1].split("(")[1].split(");")[0]result_json = json.loads(result)result_json

Output:

这样数据就整齐多了,所有的股票数据都在​​data.diff​​下面,我们只需要编写解析函数即可

返回各参数对应含义:

f2:最新价f3:涨跌幅f4:涨跌额f5:成交量(手)f6:成交额f7:振幅f8:换手率f9:市盈率f10:量比f12:股票代码f14:股票名称f15:最高f16:最低f17:今开f18:昨收f22:市净率

先准备一个存储函数

def save_data(data, date): if not os.path.exists(r'stock_data_%s.csv' % date): with open("stock_data_%s.csv" % date, "a+", encoding='utf-8') 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') else: ...

然后再把前面处理好的 json 数据传入

stock_data = result_json['data']['diff']save_data(stock_data, '2022-07-28')

这样我们就得到了第一页的股票数据

最后我们只需要循环抓取所有网页即可

for i in range(1, 5): print("抓取网页%s" % str(i)) url = "% str(i) res = requests.get(json_url) result = res.text.split("jQuery112402508937289440778_1658838703304")[1].split("(")[1].split(");")[0] result_json = json.loads(result) stock_data = result_json['data']['diff'] save_data(stock_data, '2022-07-28')

这样我们就完成了整个股票数据的抓取,喜欢就点个赞吧~

完整代码,后台回复“gupiao”获取

后面我们还会基于以上代码,完成一个股票数据抓取 GUI 程序,再之后再一起完成一个股票数据 Web 展示程序,最终完成一个股票量化平台,敬请期待哦!


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Pandas Query 方法深度总结(潘大帅在减肥)
下一篇:redis实现分布式锁实例详解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~