Investing.com 使用 Powershell 抓取历史数据
Investing.com scrape historical data with Powershell
我受到 python 模块 investpy 中答案 and the function get_stock_historical_data 的启发,在 Powershell 中编写了一个函数,该函数检索股票在两个日期:
$uri = 'https://www.investing.com/instruments/HistoricalDataAjax'
$params = @{
'curr_id'= '951481'
'smlID'= '2081817'
'header'= 'STOXX 50 Volatility VSTOXX EUR Historical Data'
'st_date'= '04/13/2021'
'end_date'= '04/13/2002'
'interval_sec'= 'Daily'
'sort_col'= 'date'
'sort_ord'= 'DESC'
'action'= 'historical_data'
}
$headers = @{
'User-Agent' = 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0'
'X-Requested-With'= 'XMLHttpRequest'
'Accept'= 'text/html'
'Accept-Encoding'= 'gzip, deflate'}
$res = Invoke-WebRequest -Method POST -Headers $headers -Uri $uri -Body $params -ContentType application/x-www-form-urlencoded
$res.Content > .\test.txt
我的问题是响应包含
<td colspan="7" class="arial_11 blueFont center">No results found</td>
但它应该return一年内所有股票的价格
有关信息,当我直接从投资发送它并检查页面时,我得到:
感谢您的帮助!
此特定示例中的问题是开始日期 ('st_date'='04/13/2021'
) 是结束日期 ('end_date'='04/13/2002'
) 之后的日期。因此,该请求基本上是针对 2021 年之后但 2002 年之前的数据,这不太合理。
在这种情况下,将后者更改为 04/13/2021 之后的任何日期应该可以解决问题。
我受到 python 模块 investpy 中答案
$uri = 'https://www.investing.com/instruments/HistoricalDataAjax'
$params = @{
'curr_id'= '951481'
'smlID'= '2081817'
'header'= 'STOXX 50 Volatility VSTOXX EUR Historical Data'
'st_date'= '04/13/2021'
'end_date'= '04/13/2002'
'interval_sec'= 'Daily'
'sort_col'= 'date'
'sort_ord'= 'DESC'
'action'= 'historical_data'
}
$headers = @{
'User-Agent' = 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0'
'X-Requested-With'= 'XMLHttpRequest'
'Accept'= 'text/html'
'Accept-Encoding'= 'gzip, deflate'}
$res = Invoke-WebRequest -Method POST -Headers $headers -Uri $uri -Body $params -ContentType application/x-www-form-urlencoded
$res.Content > .\test.txt
我的问题是响应包含
<td colspan="7" class="arial_11 blueFont center">No results found</td>
但它应该return一年内所有股票的价格
有关信息,当我直接从投资发送它并检查页面时,我得到:
感谢您的帮助!
此特定示例中的问题是开始日期 ('st_date'='04/13/2021'
) 是结束日期 ('end_date'='04/13/2002'
) 之后的日期。因此,该请求基本上是针对 2021 年之后但 2002 年之前的数据,这不太合理。
在这种情况下,将后者更改为 04/13/2021 之后的任何日期应该可以解决问题。