一般来说,我们都是交易ETF基金,就是可以在股票交易所买卖的那种基金,而不是基金公司或者天天基金网提供的基金。
因为ETF基金的交易方式类似股票,当时会比股票更有优势,这个具体我们就不展开讲,不然跑题了。言归正传,我们来爬取全部800多只ETF基金的数据。
1).打开东财的网站,点击基金,选择ETF市场
然后也是点鼠标右键/检查,查看网络,进行接口分析,我们需要通过爬虫爬取全部基金的代码编号,方便我们后面遍历获取。
打开Network,找到带有push字眼的链接,可以用上面的搜索工具,去搜这个关键字
右边这个request url 就是我们要的链接,点一下payload可以看到有856只基金。
下面就开始写代码,爬取全部ETF基金列表
我们把上面网页上分析得到url拷贝下来,然后给它构建一个times_tamp时间戳(长度为13的字符串整数),因为这个是动态的,所以实时构建一下,然后把拼装好的url 喂给spide_etf() 这个函数去请求,然后获得整个列表。
我们一般尝试5次,如果出错了就停5秒,然后继续再抓取,一旦成功就立刻返回列表内容。我们看一下输出的结果:
一共856只ETF基金数据,好获取了整个基金列表之后,我们只需要遍历就可以获得所有的基金的历史数据。
2).爬取每个基金的数据
这里我们可以讨一个巧,因为ETF基金跟股票一样,可以直接用我们上面访问股票的url链接格式进行请求历史数据,只需要换一个code就可以了,然后构建一下新的etf基金的url , 然后爬取即可:
因为有沪市和深市的编码有区分,所以如果是sh开头的etf我们这边要加1. ,而深圳的需要加0. 。
所以物联网ETF工银sz159709 就是0.159709,然后其他的都是跟前面一样,也是用spide_etf这个函数去处理,拿到的结果content 我们会喂给change_data_to_df()函数,因为需要再转为df格式。
这个函数就是干的数据清洗转换的功能,最后我们看一下结果:
爬取的这个ETF基金的12月11号的数据,开盘时0.737 收盘时0.762 最低0.737,成交量时15190 我们核对一下网上的数据。
标签:Python,我们,爬取,url,ETF,etf,基金 From: https://blog.csdn.net/cui137610/article/details/142326851