Version 2.0 | Professional Website Link Analysis & Reporting Tool
A powerful desktop application for analyzing and reporting broken links on websites. Built with Python and CustomTkinter, packaged as a standalone Windows executable.
- Features
- Screenshots
- Installation
- Usage
- Building from Source
- Project Structure
- Configuration
- Reports
- Troubleshooting
- Contributing
- License
- Contact
- ✅ Comprehensive Link Checking - Analyze unlimited links on any website
- ✅ Recursive Crawling - Follow internal links with configurable depth (1-5 levels)
- ✅ Real-time Progress - Live updates as links are being checked
- ✅ Concurrent Processing - Adjustable workers (5-50) for faster analysis
- ✅ Detailed Statistics - Total links, working, broken, and success rate
- ✅ Multiple Formats - Export reports in TXT, PDF, and CSV formats
- ✅ Professional PDF Reports - Tabular format with color-coded status
- ✅ CSV Export - Easy data analysis in Excel or other tools
- ✅ Automatic Naming - Reports saved with timestamp for easy tracking
- ✅ Modern GUI - Clean, professional interface with dark mode
- ✅ Easy Configuration - Intuitive sliders and checkboxes
- ✅ Progress Monitoring - Real-time status updates and progress bar
- ✅ Statistics Dashboard - Live stats cards showing analysis results
- ✅ Standalone Executable - No Python installation required
- ✅ Professional Installer - Full installation wizard with shortcuts
- ✅ Version Information - Embedded metadata in executable
- ✅ Error Handling - Robust error handling and logging
(Add screenshots of your application here)
-
Download the installer:
DeadLinkChecker_Setup_v2.0.exe -
Run the installer by double-clicking it
-
Follow the installation wizard:
- Welcome screen
- Read quick start information
- Accept the license agreement
- Choose installation directory (default:
C:\Program Files\DeadLinkChecker) - Select Start Menu folder
- Choose additional shortcuts (Desktop, Quick Launch)
- Review installation summary
- Install
- Launch the application
-
Launch from:
- Start Menu → Dead Link Checker
- Desktop shortcut (if created)
- Installation directory
-
Download the standalone executable:
DeadLinkChecker_v2.0.exe -
Place it in any folder
-
Double-click to run (no installation needed)
See Building from Source section below.
-
Launch the application
-
Enter the website URL you want to analyze:
https://example.com -
Configure analysis settings:
- Crawl Depth: 1 = Homepage only, 2+ = Follow internal links
- Concurrent Workers: 5-50 (higher = faster but more resource intensive)
- Timeout: 5-30 seconds per link
-
Select report formats:
- ☑ Generate Text Report (.txt)
- ☑ Generate PDF Report (.pdf)
- ☑ Generate CSV Report (.csv)
-
Click "Start Analysis"
-
Monitor progress in real-time:
- Status updates in the text area
- Progress bar showing completion
- Live statistics (Total, Working, Broken, Success Rate)
-
View results:
- Reports automatically saved in
reports/folder - Click "Open Reports Folder" to access them
- Reports automatically saved in
- Depth 1: Checks only links found on the homepage
- Depth 2: Checks homepage + all internal pages linked from homepage
- Depth 3: Goes 3 levels deep into the website
- Depth 4-5: For comprehensive site-wide analysis
- 5-10 workers: Conservative, good for slower connections
- 10-20 workers: Balanced, recommended for most users
- 20-50 workers: Aggressive, for fast connections and large sites
- 5-10 seconds: For fast, reliable websites
- 10-20 seconds: Standard timeout for most sites
- 20-30 seconds: For slow or unreliable websites
-
Python 3.8 or higher
- Download from: https://www.python.org/downloads/
- Make sure to check "Add Python to PATH" during installation
-
Inno Setup 6 (for creating the installer)
- Download from: https://jrsoftware.org/isdl.php
- Install to default location or note custom path
-
Git (optional, for cloning repository)
- Download from: https://git-scm.com/downloads
All dependencies are listed in build_tools/requirements.txt:
requests>=2.28.0- HTTP requestsbeautifulsoup4>=4.11.0- HTML parsingcustomtkinter>=5.2.0- Modern GUI frameworkpillow>=10.0.0- Image supportreportlab>=4.0.0- PDF generationpyinstaller>=6.0.0- Executable builder
Option A: Clone from GitHub
git clone https://github.com/arif98741/deadlink-checker-python.git
cd deadlink-checker-pythonOption B: Download ZIP
- Download from GitHub
- Extract to a folder
- Open terminal in that folder
cd build_tools
pip install -r requirements.txtThis installs all required packages including PyInstaller.
Easy Way (Recommended):
From project root:
.\BUILD.ps1Or from build_tools directory:
cd build_tools
.\build_installer.ps1What happens:
- ✅ Checks Python dependencies
- ✅ Cleans previous builds
- ✅ Builds executable with PyInstaller (~3-5 minutes)
- ✅ Searches for Inno Setup
- ✅ Creates Windows installer (~30 seconds)
Output:
build_tools\dist\DeadLinkChecker_v2.0.exe (Standalone executable)
installer_output\DeadLinkChecker_Setup_v2.0.exe (Windows installer)
If you need more control or have Inno Setup in a custom location:
cd build_tools
pyinstaller --clean deadlink_gui.specOutput: build_tools\dist\DeadLinkChecker_v2.0.exe
If Inno Setup is in default location:
cd build_tools
"C:\Program Files (x86)\Inno Setup 6\ISCC.exe" installer_script.issIf Inno Setup is in custom location (e.g., D: drive):
cd build_tools
&"D:\Inno Setup 6\ISCC.exe" installer_script.isscd build_tools; pwsh -ExecutionPolicy Bypass -File .\version_manager.ps1 && pyinstaller --clean deadlink_gui.spec && & "D:\Inno Setup 6\ISCC.exe" installer_script.iss && cd ..
Or use the manual build script:
cd build_tools
.\build_installer_manual.ps1This will prompt you for the ISCC.exe location.
Output: ..\installer_output\DeadLinkChecker_Setup_v2.0.exe
Change Version Number:
Edit build_tools/deadlink_gui.spec:
name='DeadLinkChecker_v3.0', # Change version hereEdit build_tools/version_info.txt:
filevers=(3, 0, 0, 0), # Update version
prodvers=(3, 0, 0, 0),Edit build_tools/installer_script.iss:
AppVersion=3.0
OutputBaseFilename=DeadLinkChecker_Setup_v3.0Add Custom Icon:
- Create or obtain an
.icofile (256x256 recommended) - Save as
build_tools/icon.ico - Uncomment in
build_tools/installer_script.iss:SetupIconFile=icon.ico - Uncomment in
build_tools/deadlink_gui.spec:icon='icon.ico',
Add Installer Banner Images:
- Create images:
installer_banner.bmp(164 x 314 pixels)installer_small.bmp(55 x 58 pixels)
- Place in
build_tools/folder - Uncomment in
installer_script.iss:WizardImageFile=installer_banner.bmp WizardSmallImageFile=installer_small.bmp
deadlink-checker-python/
│
├── src/ # Source Code
│ ├── deadlink_checker.py # Core link checking logic
│ └── deadlink_gui.py # GUI application
│
├── docs/ # Documentation
│ ├── README.md # This file
│ ├── QUICKSTART.md # Quick start guide
│ ├── LICENSE.txt # MIT License
│ ├── BUILD_INSTALLER.md # Build instructions
│ ├── BUILD_REFERENCE.txt # Quick reference
│ ├── BUILD_FIXES.md # Build fixes applied
│ ├── INSTALLATION_GUIDE.md # Installation guide
│ ├── INSTALLER_SETUP_SUMMARY.md # Installer setup
│ ├── VERSIONED_FILENAME.md # Versioning info
│ └── INSTALLER_WIZARD_GUIDE.md # Wizard documentation
│
├── build_tools/ # Build Configuration
│ ├── build_installer.ps1 # Main build script
│ ├── build_installer.bat # Batch wrapper
│ ├── build_installer_manual.ps1 # Manual build script
│ ├── build.ps1 # Simple build script
│ ├── deadlink_gui.spec # PyInstaller config
│ ├── installer_script.iss # Inno Setup config
│ ├── version_info.txt # Version metadata
│ ├── installation_complete.txt # Post-install info
│ └── requirements.txt # Python dependencies
│
├── assets/ # Assets & Resources
│ ├── sc.png # Screenshot
│ └── run_gui.bat # Quick launcher
│
├── reports/ # Generated Reports
│ └── .gitkeep # Keep directory in git
│
├── dist/ # Built Executables (generated)
│ └── DeadLinkChecker_v2.0.exe
│
├── build/ # Build artifacts (generated)
│
├── installer_output/ # Installers (generated)
│ └── DeadLinkChecker_Setup_v2.0.exe
│
├── .git/ # Git repository
├── .gitignore # Git ignore rules
├── BUILD.ps1 # Root build launcher
├── BUILD.bat # Root build launcher (batch)
├── restructure.ps1 # Project restructure script
├── restructure.bat # Restructure launcher
├── RESTRUCTURE_GUIDE.md # Restructure documentation
└── PROJECT_STRUCTURE.md # Project structure guide
src/- All Python source codedocs/- All documentation filesbuild_tools/- Build scripts and configurationassets/- Images, icons, and resourcesreports/- Output directory for generated reportsdist/- Built executables (created by PyInstaller)installer_output/- Windows installers (created by Inno Setup)
Settings are configured through the GUI:
- URL: Website to analyze
- Crawl Depth: 1-5 levels
- Workers: 5-50 concurrent threads
- Timeout: 5-30 seconds
- Report Formats: TXT, PDF, CSV
Configuration files in build_tools/:
-
deadlink_gui.spec- PyInstaller configuration- Hidden imports
- Executable name
- Version info
- Icon settings
-
installer_script.iss- Inno Setup configuration- App information
- Installation directories
- Shortcuts
- Wizard pages
- Custom messages
-
version_info.txt- Windows version metadata- File version
- Product version
- Company name
- Copyright
- Plain text format
- Summary statistics
- Detailed link list with status codes
- Easy to read and share
- Professional tabular format
- Color-coded status (green/red)
- Summary section
- Detailed results table
- Suitable for presentations
- Spreadsheet-compatible format
- Columns: URL, Status Code, Status Text, Response Time, Link Type, Found On, Is Dead, Is External
- Easy data analysis in Excel
- Suitable for further processing
Reports are saved in:
- Installed version:
C:\Program Files\DeadLinkChecker\reports\ - Portable version:
reports\folder next to executable - Development:
reports\folder in project root
Reports are automatically named with timestamps:
deadlink_report_example_com_20260110_215637.txt
deadlink_report_example_com_20260110_215637.pdf
deadlink_report_example_com_20260110_215637.csv
Format: deadlink_report_[domain]_[YYYYMMDD]_[HHMMSS].[ext]
"PyInstaller not found"
pip install pyinstaller"Inno Setup not found"
- Install from: https://jrsoftware.org/isdl.php
- Or specify custom path in build script
"Module not found" during build
- Add to
deadlink_gui.specunderhiddenimports:hiddenimports=[ 'your_missing_module', ],
Build fails with path errors
- Make sure you're in the
build_toolsdirectory - Or use the root
BUILD.ps1script
Antivirus flags the executable
- This is a false positive (common with PyInstaller)
- Add exception in antivirus software
- Or submit to antivirus vendor as false positive
"Windows protected your PC" message
- Click "More info"
- Click "Run anyway"
- This happens because the executable is not code-signed
Application doesn't start
- Check if antivirus blocked it
- Try running from command line to see errors
- Check Windows Event Viewer for error details
Reports not saving
- Check folder permissions
- Make sure
reports/folder exists - Check disk space
Installer won't run
- Right-click → "Run as administrator"
- Check antivirus settings
- Download installer again (may be corrupted)
Installation fails
- Check disk space (need ~100 MB)
- Close other applications
- Try different installation directory
If you encounter issues:
-
Check Documentation
- Read relevant
.mdfiles indocs/folder - Check
BUILD_FIXES.mdfor known issues
- Read relevant
-
Check Logs
- PyInstaller logs in build output
- Inno Setup logs in installer output
- Application logs (if implemented)
-
Report Issues
- GitHub Issues: https://github.com/arif98741/deadlink-checker-python/issues
- Include:
- Error message
- Steps to reproduce
- System information (Windows version, Python version)
- Screenshots if applicable
Contributions are welcome! Here's how you can help:
- Check if the bug is already reported in Issues
- Create a new issue with:
- Clear title
- Detailed description
- Steps to reproduce
- Expected vs actual behavior
- Screenshots/logs if applicable
- Check if the feature is already requested
- Create a new issue with:
- Clear description of the feature
- Use case / why it's needed
- Proposed implementation (optional)
- Fork the repository
- Create a feature branch:
git checkout -b feature/your-feature-name
- Make your changes
- Test thoroughly
- Commit with clear messages:
git commit -m "Add: feature description" - Push to your fork:
git push origin feature/your-feature-name
- Create a Pull Request
- Clone the repository
- Install dependencies:
cd build_tools pip install -r requirements.txt - Make changes in
src/directory - Test by running:
python src/deadlink_gui.py - Build to test executable:
cd build_tools .\build_installer.ps1
This project is licensed under the MIT License.
MIT License
Copyright (c) 2026 arif98741
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
See LICENSE.txt for full license text.
- Author: arif98741
- Website: https://devtobox.com
- GitHub: https://github.com/arif98741/deadlink-checker-python
- Issues: https://github.com/arif98741/deadlink-checker-python/issues
- CustomTkinter - Modern GUI framework
- PyInstaller - Executable builder
- Inno Setup - Windows installer creator
- ReportLab - PDF generation
- Beautiful Soup - HTML parsing
- Requests - HTTP library
- ✅ Complete GUI redesign with modern interface
- ✅ Added CSV export functionality
- ✅ Real-time progress updates
- ✅ Professional Windows installer
- ✅ Versioned executable filenames
- ✅ Website link in header (devtobox.com)
- ✅ Improved error handling
- ✅ Comprehensive documentation
- ✅ Basic link checking functionality
- ✅ TXT and PDF report generation
- ✅ Command-line interface
- ✅ Simple GUI
Future enhancements planned:
- Support for authentication (login-protected sites)
- Scheduled link checking
- Email notifications
- Link history tracking
- Comparison between scans
- Export to Excel format
- Custom report templates
- Multi-language support
- macOS and Linux support
- Cloud storage integration
If you find this project useful, please consider giving it a star on GitHub!
Built with ❤️ by arif98741
© 2026 All Rights Reserved
Version 2.0