我找到了一种方法,可以通过查看网络选项卡(在开发工具面板中)从chart page of the Wall Street Journal下载数据,并再现刷新图表时创建的请求。其工作原理如下:
'Network'
这非常好,因为它非常简单且有效,但是我只能检索最多25天左右的分钟数据。
另一方面,morningstar charting似乎有更多可用的分钟数据,我想做同样的事情:只需通过查找javascript调用从网站获取数据在更新图表时在后台进行。但是,当我查看“网络”标签时,更改日期范围时看不到任何通话。我对javascript不太了解,想知道他们使用了什么替代机制来实现这一目标。 (也许是异步/提取?)
有人知道我怎么可能看到这些电话吗?
答案 0 :(得分:1)
您将需要调查其他任何查询字符串参数是否基于时间(或取决于行情指示器)。我已经用固定的值替换了几个参数,这些参数似乎仍然有效。
import requests
start_date = '20170814'
end_date = '20190102'
r = requests.get(f'https://quotespeed.morningstar.com/ra/uniqueChartData?instid=MSSAL&sdkver=2.39.0&CToken=1&productType=sdk&cdt=7&ed={end_date}&f=d&hasPreviousClose=true&ipoDates=19801212&pids=0P000000GY&sd={start_date}&tickers=126.1.AAPL&qs_wsid=27E31E614F74FC7D8828E941CAC2D319&tmpid=1&instid=MSSAL&_=1').json()
print(r)
用fiddler观察到的原始参数: