How duyennh2401/web-crawler-seg301 works
This is a multi-source focused news crawler. An operator runs main.py, which creates a shared BFS engine and independently processes five newspaper adapters. The engine enforces robots.txt, fetches pages, parses and filters links, persists pages and link relationships in SQLite, and returns article records. main.py combines those records into a digest stored in SQLite. The repository also provides a database inspection utility. Unsampled files such as digest.py and config.py are represented only where README or sampled callers establish their roles.
Components 18
Entry and Output
- Run Crawler
main.py - Runtime Config
config.py - Digest Builder
digest.py - Article Models
models.py
Crawl Engine
- Crawler Engine
crawler.py - BFS Frontier
url_frontier.py - Robots Manager
crawler.py - Common Parser
parser.py
Source Adapters
- VnExpress Adapter
sources/vnexpress.py - CNN Adapter
sources/cnn.py - BBC Adapter
sources/bbc.py - Guardian Adapter
sources/guardian.py - Global Times Adapter
sources/globaltimes.py
Persistence
- SQLite Database
database.py - Database Viewer
view_db.py
External Web
- News Websites
- Robots Files
Other components
- Operator
Connections 21
- Operator → Run Crawler: runs
- Run Crawler → Runtime Config: reads settings
- Run Crawler → Crawler Engine: starts crawl
- Run Crawler → Digest Builder: builds digest
- Run Crawler → SQLite Database: stores digest
- Crawler Engine → BFS Frontier: dispatches URLs
- Crawler Engine → Robots Manager: checks access
- Crawler Engine → VnExpress Adapter: runs adapter
- Crawler Engine → CNN Adapter: runs adapter
- Crawler Engine → BBC Adapter: runs adapter
- Crawler Engine → Guardian Adapter: runs adapter
- Crawler Engine → Global Times Adapter: runs adapter
- Crawler Engine → News Websites: fetches pages
- Robots Manager → Robots Files: fetches rules
- VnExpress Adapter → Common Parser: parses pages
- CNN Adapter → Common Parser: parses pages
- Crawler Engine → SQLite Database: writes pages
- Crawler Engine → SQLite Database: writes links
- Crawler Engine → Run Crawler: returns articles
- Digest Builder → Article Models: creates digest
- Database Viewer → SQLite Database: reads records