Produces .csv, .json, .yaml, and .xls files (All files contain same data in a different format) for stocks, ETF, futures, indexes, mutual funds, currency, warrants and bonds. The ticker symbol, company name and exchange are saved.
It gets its data from https://finance.yahoo.com/lookup/. Please note: it is not possible to get all the symbols due to limitations set by Yahoo. About 75%-90% of all symbols are gathered using this script depending on type.
From python package manager (preferred):
pip install Yahoo-ticker-downloader
From source:
python setup.py install
The first param is one of the following types: stocks
etf
future
index
mutualfund
currency
warrant
bond
YahooTickerDownloader.py stocks
The program takes several hours before any output is generated. The program supports suspending and resuming a download. Press CTRL+C to suspend download. Restart the program in the same working directory to resume downloading.
Example of output:
Ticker,Name,Exchange,categoryName,categoryNr ENZ,"Enzo Biochem Inc.",NYQ,"Medical Laboratories & Research",525 ENZN,"Enzon Pharmaceuticals Inc.",NMS,Biotechnology,515 ENZR,"Energizer Resources Inc.",PNK,,0 EOAA.DE,"E.ON AG",GER,"Diversified Utilities",913 KMX,"CarMax Inc.",NYQ,"Auto Dealerships",744 KMY.MU,KIMBERLY-CLARK,MUN,"Personal Products",323 KN1.DU,ECOUNION,DUS,"Business Software & Services",826 KNCAY,"Konica Minolta Holdings Inc.",PNK,,0 KND,"Kindred Healthcare Inc.",NYQ,"Long-Term Care Facilities",523 KNDI,"Kandi Technologies, Corp",NGM,"Auto Manufacturers - Major",330 ...ect
Depending on the type you are downloading, you will between 3.000 and 26.000 entries.
Download history for symbols: ystockquote
- Version 0.10.1
- More descriptive help message
- Version 0.10.0
- Removed bond downloading option.
- Uses different yahoo source. Fixes #18
- Removed python2 from classifiers. Related to #16
- Version 0.9.0
- Added a flag to restrict output to specific stock exchanges.
- Version 0.8.1
- Workaround for #7 : downloading interruption
- Solution for #9 : UnicodeEncodeError
- Version 0.7.0
- Added --export option. It will transcode the .pickle file immediately to the desired output formats.
- Version 0.6.0
- Add 3 retries with an exponential back-off if HTTPError or ChunkedEncodingError is raised when processing _fetchHtml.
- Version 0.5.0
- Allows downloading using a insecure connection.
- The temporarily download file-names now include the ticker type.
- Version 0.4.0
- Warrant symbols can now be downloaded.
- Bond symbols can now be downloaded.
- Version 0.3.0
- Use https instead of http
- Retry to fetch a page if it contains no symbols (A "fix" for issue #4)
- Renamed all 'Curreny' to 'Currency'
- Relative imports are used
- Fix: .csv file it outputs is encoded in UTF-8 when using python2
- Performance: Considerable reduced memory consumption
- It now outputs .json, .yaml and .xls files in addition to .csv