python财经数据接口工具_使用python爬取财经网站数据接口

使用python爬取雪球任意股票数据

前言

找接口

使用接口

前言

当我们想对股票数据用python爬取的时候,总是找不到好的获取数据,有一些相关的包,tushare等,但是它有限股票数据就没有,比如我最近在爬的SZ159915,在tushare库中,就爬不到。

找接口

以下以雪球为例:

打开雪球:

viaEBr.png

搜索六位代码,如159915:

uyMjEr.png

开发者模式,打开Network页面,搜索前期最高点或者最低点,如1.669

feqe6f.png

单击第一个

IraUJv.png

发现是这行数据:

6bAfMn.png

单击得到这个页面:

736bIj.png

把General项的网址用浏览器打开看看:

BNJzmm.png

接口参数意义:

https://stock.xueqiu.com/v5/stock/chart/kline.json?symbol=SZ159915&begin=1589340438277&period=day&type=before&count=-142&indicator=kline,pe,pb,ps,pcf,market_capital,agt,ggt,balance

参数

意义

begin

起始日

period

K线单位选择,日k,月k等

type

不知道什么意义

count

数据个数

indicator

其他指标参数

图中一些变量的意义

变量

意义

timestamp

时间戳乘以1000(为什么要是时间戳的1000倍我也不知道)。

volume

成交量

open

开盘价

high

最高价

low

收盘价

close

收盘价

其他的一些参数自己可以对比K线查看。

在Preview页面可以更简单查看到:

fEBv2e.png

使用接口

写代码的时候需要用到Request Hearders项下面的Cookie和User-Agent项

yAZBbe.png

接下来可以写代码爬取了,代码直接贴上了,使用requests库。

import requests

import json

import pandas as pd

number = 2000 # 需要获取的交易日的个数

url = 'https://stock.xueqiu.com/v5/stock/chart/kline.json?symbol=SZ159915&begin=1589006163614&period=day&type=before&count=-' + str(

number)

# Cookie参数根据每个人的设备来变动

headers = {'User-Agent': 'Mozilla/5.0',

'Cookie': 'xq_a_token=48575b79f8efa6d34166cc7bdc5abb09fd83ce63; xqat=48575b79f8efa6d34166cc7bdc5abb09fd83ce63; xq_r_token=7dcc6339975b01fbc2c14240ce55a3a20bdb7873; xq_id_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJ1aWQiOi0xLCJpc3MiOiJ1YyIsImV4cCI6MTU4OTY4MjczMCwiY3RtIjoxNTg4OTE5Njc4OTk4LCJjaWQiOiJkOWQwbjRBWnVwIn0.l6yOJc-qTWMNU8g6wXjew0X7TmWbi82cuGiYkVvWGnUoxYSGWIx3DtfIki0etjSbN8mG0r1Gwd_q-PGo6EHL4h-SreHzt7tnteLtmnFrJ5hdyNh1g_x2u4XMvTX-pIEZmVInhBIM_BGVFerYXHuIJ6lm1G-EPR4RlVG2PQ7PTvvsz9-VycQJVZuF1zguF936WiSbPTBmhG0wcXUdfziFC1RPrXgFNTrwNXqaIiWfT5WbRWckm8aFNM3krCGCaES494Jco0FBM3eB5GJlGeB5xS1if_de7T6__PSTCmzMHokG133gRqt4FvYHu9kIQg74CdGw8u7EDWSigw-kASVAzg; u=851588919733219; is_overseas=0; Hm_lvt_1db88642e346389874251b5a1eded6e3=1588919732; Hm_lpvt_1db88642e346389874251b5a1eded6e3=1588919732; device_id=fa23c8c5b1bd5f49c8c9ac7a657ccec3'}

r = requests.get(url, headers=headers) # 爬取数据

text = r.text # 获得文本

data = json.loads(text) # str转成json

item = data['data']['item'] # 从全部数据中取出item项

df = pd.DataFrame(item, columns=["timestamp", "volume", "open", "high", "low", "close", "chg", "percent", "turnoverrate", "amount", "volume_post", "amount_post"]) # list转为DataFrame数据格式,更方便以后的处理

print(df)

输出的数据如下:

timestamp volume open ... amount volume_post amount_post

0 1329408000000 67987778 0.726 ... NaN None None

1 1329667200000 39183956 0.725 ... NaN None None

2 1329753600000 77306937 0.721 ... NaN None None

3 1329840000000 193157652 0.738 ... NaN None None

4 1329926400000 124234294 0.765 ... NaN None None

... ... ... ... ... ... ... ...

1995 1588089600000 356095691 1.943 ... 696005741.0 None None

1996 1588176000000 411736129 1.964 ... 817442890.0 None None

1997 1588694400000 367767579 1.980 ... 737917205.0 None None

1998 1588780800000 265935124 2.030 ... 538456242.0 None None

1999 1588867200000 304340396 2.035 ... 622569015.0 None None

[2000 rows x 12 columns]

至此,爬取工作完成,后面如何使用根据个人需求而定。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值