-
Notifications
You must be signed in to change notification settings - Fork 0
Home
BLC (Broken Links Crawler) is a Python-based command-line tool developed as part of academic work.
The tool is built to scan websites and detect broken or problematic hyperlinks, addressing practical needs while showcasing key concepts in modern software development โ including multithreading, modular design, automation, and robust error handling.
Although developed in an academic setting, BLC is a fully functional and production-aware tool. Itโs designed to be performant, configurable, and extensible โ suitable for use by developers, sysadmins, QA engineers, and anyone responsible for maintaining link integrity across digital content.
-
๐ High-performance, multi-threaded crawling
Utilizes a producer-consumer pattern to efficiently scan sites in parallel. -
๐ Detection of common link issues:
404 Not Found- DNS resolution errors
- HTTP to HTTPS mismatches
- "False 200 OK" responses (e.g., custom error pages)
-
๐ External link validation
Ensures referenced external links are reachable, without full recursion. -
๐๏ธ Flexible configuration:
- Crawl depth control
- Adjustable thread count
- Output in
JSON,HTML, or human-readable formats
-
๐ฌ Email-based reporting
Automatically sends results based on customizable triggers:- Always
- Only on error
- Never
-
๐ฅ๏ธ Cross-platform support
- Built for Linux (Ubuntu) and Windows
- Can be packaged into a standalone executable (
blc,blc.exe)
-
๐ Open-source & automation-ready
- Easily integrated into CI/CD pipelines, scheduled audits, or link monitoring tools
This project demonstrates:
- Clean and modular code structure
- Effective use of concurrency and thread-safe data structures
- Real-world exception handling and resilience
- Compliance with web standards (
robots.txt, SSL, email protocols) - Practical usage of third-party libraries (e.g.,
requests,certifi,PyInstaller)
Feel free to start with some ๐Sample Outputs.
Visit the ๐Usage Instructions page to learn how to configure, run, and customize BLC.
Explore the sections - ๐ Initial Software Requirements, ๐ High-Level Design to explore the project's origin and architecture.
Check out ๐ ๏ธ Implementation Notes for insights into the tools, technologies, and key implementation decisions.
Crawling the web isnโt as straightforward as it might seem. You can check out what challenges came up and how they were handled in - ๐ง Crawler Fetch Failures & Workarounds, and see how BLC deals with blocked access in ๐ซ Sites That Restrict Automated Crawling.
A discussion on thread number optimization can be found on ๐ Thread Count Optimization.
Feel free to explore or extend the project further. You can find the full source code, issue tracker, and documentation in the GitHub repository.
Thank you for visiting โ and hereโs to chasing broken links, and finishing what we started. ๐โจ
-
๐Usage Instructions
Learn how to configure, run, and customize BLC. -
๐ High-Level Design
Explore the project's origin and architecture. -
๐ ๏ธ Implementation Notes
Tools, technologies, and key implementation decisions. -
๐ซ Sites That Restrict Automated Crawling See what was done and achieved.
-
๐ Thread Count Optimization
Discussion on thread number optimization. -
๐Sample Outputs See it in action!