Python Options Chain scraper for the old NASDAQ website : https://old.nasdaq.com
pip install options-scraper
Use the API if you want to access the scraped data records ( as python objects ) directly.
from options_scraper.scraper import NASDAQOptionsScraper
from options_scraper.utils import batched
scraper = NASDAQOptionsScraper()
ticker_symbol = 'XOM'
kwargs = { "money": 'all',
"expir": 'week',
"excode": None,
"callput": None
}
records_generator = scraper(ticker_symbol, **kwargs)
# Either access each record individually as shown below
for item in records_generator:
print(item)
# Or use the batched util to get a list of items
for items in batched(records_generator, batch_size=100):
print(items)
Each scraped record will have the following structure
{'Ask': '23.20',
'Bid': '18.50',
'Calls': 'Apr 24, 2020',
'Chg': '',
'Last': '19.40',
'Open Int': '15',
'Puts': 'Apr 24, 2020',
'Root': 'XOM',
'Strike': '60',
'Vol': '0'}
{'Ask': '28.20',
'Bid': '23.50',
'Calls': 'Apr 24, 2020',
'Chg': '',
'Last': '29.67',
'Open Int': '3',
'Puts': 'Apr 24, 2020',
'Root': 'XOM',
'Strike': '65',
'Vol': '0'}
Use this script to scrape records and save them either in CSV or JSON format.
options-scraper --help
usage: options-scraper [-h]
[-l {CRITICAL,FATAL,ERROR,WARN,WARNING,INFO,DEBUG,NOTSET}]
[-t TICKER]
[-o ODIR]
[-b BATCH_SIZE]
[-c {call,put}]
[-m {all,in,out,near}]
[-e EXCODE]
[-x {week,stan,quart,cebo}]
[-s {json,csv}]
optional arguments:
-h, --help show this help message and exit
-l {CRITICAL,FATAL,ERROR,WARN,WARNING,INFO,DEBUG,NOTSET}, --log-level {CRITICAL,FATAL,ERROR,WARN,WARNING,INFO,DEBUG,NOTSET}
-t TICKER, --ticker TICKER Ticker Symbol
-o ODIR, --odir ODIR Output directory
-b BATCH_SIZE, --batch_size BATCH_SIZE Batch Size
-c {call,put}, --callput {call,put}
-m {all,in,out,near}, --money {all,in,out,near}
-e EXCODE, --excode EXCODE excode
-x {week,stan,quart,cebo}, --expir {week,stan,quart,cebo}
-s {json,csv}, --serialize {json,csv} Serialization format
You have an option to output the data either in a CSV file or a JSON file. Default format is CSV.
Define how many records each csv or json file should have.
- To get all the option chain for XOM in a batch_size of 1000 and
csv
file format. This will make sure that each CSV file has 1000 records in it. The last file will have the remaining records
options-scraper -t XOM -o /Users/abhishek/options_data -b 1000 -s csv
- To get all option chain data for MSFT in a batch_size of 10 and
json
file format.
options-scraper -t MSFT -o /Users/abhishek/options_data -b 10 -s json
- To get all
put
options with weekly expiry.
options-scraper -t XOM -e cbo -c put -x week -o /Users/abhishek/options_data
- To get all
call
options withcebo
expiry.
options-scraper -t XOM -c call -x cebo -o /Users/abhishek/options_data