Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can't download data from Yahoo Finance using Quantmod in R

I'm trying to download data from Yahoo using this code:

library(quantmod)
getSymbols("WOW", auto.assign=F)

This has worked for me in the past in every occasion except now, 5 days before my group assignment is due.

Except now I receive this error:

Error in download.file(paste(yahoo.URL, "s=", Symbols.name, "&a=", from.m,  : cannot download all files
In addition: Warning message:
In download.file(paste(yahoo.URL, "s=", Symbols.name, "&a=", from.m,  :
  URL 'https://ichart.finance.yahoo.com/table.csv?
s=WOW&a=0&b=01&c=2007&d=4&e=17&f=2017&g=d&q=q&y=0&z=WOW&x=.csv': status was 
'502 Bad Gateway'
like image 259
Daniel Avatar asked May 17 '17 04:05

Daniel


3 Answers

The price history csv URL's appear to have changed

Old https://chart.finance.yahoo.com/table.csv?s=AAPL&a=2&b=17&c=2017&d=3&e=17&f=2017&g=d&ignore=.csv

New: https://query1.finance.yahoo.com/v7/finance/download/AAPL?period1=1492438581&period2=1495030581&interval=1d&events=history&crumb=XXXXXXX

The new version appends a "crumb" field which appears to reflect cookie information in the user's browser. It seems they are intentionally blocking automated downloads of price histories and forcing queries to provide information to validate cookies in a web browser

like image 67
solrak18 Avatar answered Oct 18 '22 07:10

solrak18


The fix is detailed at https://github.com/joshuaulrich/quantmod/issues/157

Essentialy

remotes::install_github("joshuaulrich/quantmod", ref="157_yahoo_502")
# or
devtools::install_github("joshuaulrich/quantmod", ref="157_yahoo_502")
like image 9
Michael Cohen Avatar answered Oct 18 '22 06:10

Michael Cohen


Version 0.4-9 of quantmod fixes this issue, and is now available on CRAN.

like image 3
Robert Avatar answered Oct 18 '22 07:10

Robert