Skip to content

A scraper for downloading Pakistan stock exchange's data into Python Pandas DataFrame.

License

Notifications You must be signed in to change notification settings

MuhammadAmir5670/psx-data-reader

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

forthebadge made-with-python ForTheBadge built-with-love

GitHub RuboCop RuboCop

🔴 This package is no longer maintained for any issues and bugs 🔴

psx-data-reader

with psx-data-reader, you can scrape the data of Pakistan stock exchange. psx-data-reader is super easy to use and handles everything for you. Just specify which company's stock data you want and how much you want, and the rest is done for you.

GitHub Workflow Status PyPI - Implementation PyPI - Python Version PyPI GitHub release (latest by date) PyPI - Status PyPI - Downloads GitHub issues GitHub closed issues

Overview

The psx-data-reader was written with fast use in mind. It provides the following key features

  • can scrape all historical data till current date
  • can scrape data for of multiple companies in a single line of code
  • returns a Pandas DataFrame for the scraped data
  • for better download speed, It does not request the complete data in a single network request rather it makes chunks of data to be downloaded and uses threads to open requests for different chunks of data, hence results in better speed

In the following paragraphs, I am going to describe how you can get and use Scrapeasy for your own projects.

Installation

To get psx-data-reader, either fork this github repo or simply use Pypi via pip.

$ pip install psx-data-reader

Usage

First, import stocks and tickers from psx

from psx import stocks, tickers

to get the information of all the companies in Pakistan stock Exchange....

tickers = tickers()

to scrape the data of Silk Bank Limited we have pass its ticker (symbol) to the stocks method with proper start and end date. and it will return a DataFrame with the scraped data

data = stocks("SILK", start=datetime.date(2020, 1, 1), end=datetime.date.today())

we can also download the data of multiple companies in a single call to stocks method by passing a list or tuple of symbols

data = stocks(["SILK", "PACE"], start=datetime.date(2020, 1, 1), end=datetime.date.today())

and now the returned DataFrame object will have a hierarchical index on rows.

Example Graph

Author Info