亚太智媒
关闭

亚太智媒APP, 全新登场!

点击下载

Power Query 抓取股票信息的几个问题

财经

2019-03-10 16:33

女神节股市很不平静,数据可以下载下来留作纪念。Power Query可以用来抓取股票信息,就是要注意几个细节:

首先找到你需要的数据的网站,证卷之星、同花顺、东方财富、新浪财经等等,很多网站都有行情中心,提供当天的股票行情信息以及历史信息查询。这些信息都是公开的,匿名访问就可以下载,但是有个问题,网站会有反爬机制,访问过于频繁就会被断开连接,或者一次性抓取数据过多也会被断开连接。

接下来就是要看哪些网站能抓,哪些不能抓?

第一种:提供具体网页的静态网址的可以抓

第二种:地址栏里只提供主站地址,但是能够找到具体页面网址的

张两种网址应该都可以抓取,第二种中有的也不行,因为后面的Request中有网站下发的随机码,没有任何规律,就不能抓。

还有就是如何延迟抓取,模仿人类的速度

Power Query中提供了一个可以使程序延迟运行的M函数Function.InvokeAfter,这个函数有两个参数。前面是函数,后面是延迟的时间间隔。

这个函数的用法与其他函数有些不同:

函数里面需要用"="来转一下。右下角刷新时就会有明显的延迟。

把这个函数用到抓取过程中,写成这个样子

最后就是页数多时,要分开抓取

测试了几个网站信息抓取的时候,如果页数过多,就会被拒绝,一般来说30页左右,应该可以接受,大家也可以根据实际情况自己试一试。

这个是抓取了5页的例子。全部A股的股票行情信息,有2700多行,如果20行一页的话,也要有100多页,分成5次,就能抓取完了。

抓取下来的信息,最好是转成本地文件,要不然刷新数据是特别慢,还容易被网站拒绝访问,上图是我抓取下来的3月8日的A股股票信息,导入到Power BI里做的个可视化图表。