Ystorical is a python script aimed to download Yahoo historical stock data. Since changes on Yahoo's site, pandas_datareader is broken and Yahoo data is no more accessible using pandas. Until this issue will be fixed, you can use this script based on this stackoverflow post.
pandas
xvfbwrapper (to run headless on vps)
dryscrape
fake_useragent
lxml
Just pass a list of stock symbols with start and end dates