Jarian Cottingham 724be90e7c Initial commit: StockDocs RSS scraper
Carved out from the StockDocs monorepo. Collects financial news
from 60+ outlets via RSS into a structured article corpus.
2026-08-21 18:33:59 +00:00

90 lines
2.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# StockDocs — Scraper
RSS scraper for the StockDocs financial news platform: collects financial news from 60+ outlets (Reuters, Bloomberg, Forbes, FT, WSJ...) and stores articles in a structured directory hierarchy for the processing pipeline.
Part of the StockDocs project family:
| Repo | What it is |
|------|------------|
| [StockDocs](https://git.jarianc.com/jarianc/StockDocs) | Processing core — article server, NLP analysis, embeddings |
| [stockdocs-mcp](https://git.jarianc.com/jarianc/stockdocs-mcp) | MCP server exposing the processed data to LLM clients |
## Project Structure
```
.
├── rss_feeds.json # Configuration file with RSS feed URLs
├── scraper.py # Main scraping logic
├── cron_scraper.py # Scheduled scraping entry point
├── run_scraper.sh # Run helper
├── requirements.txt # Python dependencies
├── dockerfile # Docker configuration
├── dockerfile-selenium # Dockerfile for selenium-based scraping
├── articles/ # Directory where scraped articles are stored
│ ├── Reuters Business News/
│ │ ├── article1.txt
│ │ └── ...
│ └── ...
└── tests/ # Unit tests (article-processing cache)
```
## Features
- **RSS Feed Integration**: Supports multiple financial news sources through RSS feeds
- **Automated Scraping**: Regularly fetches and processes new articles from configured feeds
- **Structured Storage**: Organizes articles in a directory structure by news outlet
- **Duplicate Detection**: Prevents re-processing of already collected articles
- **Caching Mechanism**: Maintains a cache of processed articles to optimize performance
## RSS Feed Sources
The scraper supports 60+ news outlets including:
- Reuters Business News
- Associated Press Business
- Financial Times
- Forbes Real-Time
- Wall Street Journal U.S. Business
- Bloomberg Surveillance Podcast
- CNN Money
- BBC News Business
- And many more...
## Usage
### Running the Scraper
```bash
python scraper.py
```
### Configuration
The scraper can be configured by modifying `rss_feeds.json` to:
- Add new news sources
- Update existing RSS feed URLs
- Remove sources that are no longer active
### Article Storage
Articles are stored in `articles/` directory with the following structure:
```
articles/
└── <News Outlet Name>/
├── article1.txt
├── article2.txt
└── ...
```
Where each article file contains the full text content of that news article.
## Requirements
- Python 3.6+
- Selenium WebDriver (for certain scraping operations)
- Additional dependencies listed in `requirements.txt`
## License
This project is licensed under the MIT License.