Project · 2026
StockAnalysis.com Scraper
A desktop application that downloads company statements and market data into organized Excel workbooks or CSV files.
The question
Can routine company-data collection be turned into a fast, repeatable desktop workflow without requiring an API key or browser-based copying?
What I built
A Python and tkinter desktop application that collects overview data, income statements, balance sheets, cash-flow statements, and ratios from StockAnalysis.com for one or many tickers.
Method
The interface cleans and deduplicates ticker input, lets the user choose statements, annual or quarterly periods, output mode, file format, and destination, then fetches the requested pages concurrently through persistent HTTP sessions.
What it shows
A small desktop interface can remove repetitive collection work while still making the run observable: each statement reports progress, failed tickers are isolated, and completed files are organized predictably by run and company.
Core capabilities
Flexible ticker input
Accepts comma-, space-, or semicolon-separated tickers, normalizes capitalization and spacing, and removes duplicates before the run.
Statement selection
Downloads any combination of company overview, income statement, balance sheet, cash-flow statement, and ratios.
Annual and quarterly views
Runs annual, quarterly, or both periods; combined workbooks keep the selected views in separate sheets.
Observable execution
Includes a status-colored progress bar, a collapsible real-time log, per-ticker error isolation, and a remembered output location.
Workflow
- Enter one or more ticker symbols and select the statements to collect.
- Choose annual, quarterly, or both, then select a combined workbook or separate files.
- The app fetches statements concurrently with an eight-worker thread pool and reuses persistent network connections.
- Each run is written to a timestamped folder with a separate subfolder for every ticker.
Outputs
- Combined Excel workbook
- One workbook per ticker with selected statements on separate tabs, a metadata header, and automatically fitted columns.
- Separate files
- One CSV or Excel file per selected statement when a flat, modular output is preferable.
- Run log and folder structure
- Timestamped run folders preserve which files belong together, while the interface reports each fetch and save operation.
Limitations
- The application depends on StockAnalysis.com page structure; upstream markup changes can require scraper updates.
- The repository identifies the tool for personal academic and research use, and users remain responsible for respecting the source site’s terms.
- Scraped figures should be checked against primary filings before being used for consequential analysis.
- The compiled executable workflow documented in the repository is Windows-specific.