Coder Social home page Coder Social logo

options_scraper's Introduction

NASDAQ Options chain Scraper

Python Options Chain scraper for the old NASDAQ website : https://old.nasdaq.com

Install

pip install options-scraper

API

Use the API if you want to access the scraped data records ( as python objects ) directly.

Usage

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)

Output

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'}

Console Script

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

Serialization format (-s)

You have an option to output the data either in a CSV file or a JSON file. Default format is CSV.

Batch Size (-b)

Define how many records each csv or json file should have.

Examples

  1. 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
  1. 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
  1. To get all put options with weekly expiry.
options-scraper -t XOM -e cbo -c put -x week -o /Users/abhishek/options_data
  1. To get all call options with cebo expiry.
options-scraper -t XOM -c call -x cebo -o /Users/abhishek/options_data

options_scraper's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.