Skip to content

Sulav2060/nepse

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NEPSE — NEPSE data tools (educational)

NEPSE is a personal project that fetches live LTP (last traded price) and corporate actions (bonus, rights share, cash dividend) data for stocks listed on NEPSE (Nepal Stock Exchange).

WARNING / IMPORTANT: Educational-only and ethical use

  • This project is provided strictly for educational, research, and personal learning purposes only.
  • Respect website Terms of Service and robots.txt. If a data provider offers an official API, prefer that API and obtain permission for automated access.
  • The author is not responsible for how others use this code. Use at your own risk.

What this project does

  • Provides utilities and API endpoints to fetch:
    • Live LTP for symbols on NEPSE (example scraping of Sharesansar or other public sources).
    • Corporate actions over the last 5 years (bonus issues, rights issues, cash dividends).
  • Supports automated refresh (e.g., scheduled refresh every 2 days) and manual refresh endpoints/actions.
  • Provides parsing and normalization so downstream tools can consume the data.

High-level architecture

  • Next.js / TypeScript API routes for web-accessible endpoints.
  • Scraper modules that fetch and parse data:
    • Lightweight HTML parsing (node-fetch + jsdom) for static content.
    • Optionally, headless browser approach (Puppeteer/Playwright) for pages that render dynamically or rely on JavaScript.
  • Optional Python helpers and scripts for heavier data processing or archival tasks.
  • Cache layer / DB (recommended) for storing last-known values and corporate actions to avoid refetching every request.
  • Scheduler (cron, GitHub Actions, or an external job runner) to refresh corporate actions every 2 days.

Design & implementation notes

  • Caching: Store results in a local DB (SQLite/Postgres) or an in-memory cache for live LTP to avoid repeated heavy fetches.
  • Respect robots.txt: Check each data source's robots.txt and terms of service before scraping.
  • Avoid bypass instructions: This repo intentionally does NOT include instructions to bypass anti-scraping protections (CAPTCHA, IP bans, Cloudflare IUAM, or other measures). Attempting to evade such protections may be illegal or violate terms of service.

Data refresh strategy

  • Corporate actions (bonus/rights/cash dividend):
    • Default: refresh every 48 hours (cron or scheduled job).
    • Manual: expose an authenticated endpoint to trigger refresh.
  • Live LTP:
    • Ideally use a streaming or official endpoint. If unavailable, avoid aggressive polling.
    • Aggregate and store snapshots; provide a “latest known” endpoint.

Credits & sources

Contributing

  • Contributions are welcome, but please:
    • Do not add code that circumvents a site's security or denies service.
    • Open PRs that improve parsing resilience, add official API support, or improve caching/rate-limiting.
    • Include tests for parsers and keep changes well-documented.

License

  • This repository does not grant permission to scrape any website. It provides code examples and utilities for educational purposes only.

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors