A tool to find broken links (404s) and oversized pages in websites
Project description
404 Finder
A Python tool to crawl websites and find broken links (404s) and oversized pages.
Install the CLI
pip install find_404
Usage
find_404 example.com [options]
Options
--max-size BYTES: Maximum allowed size in bytes for any page--workers N: Number of parallel workers (default: 10)--max-depth N: Maximum depth to crawl (default: no limit)--verbose: Enable verbose logging--version: Show the version number
Example
# Check for broken links on example.com
find_404 example.com
# Check for broken links and pages larger than 1MB
find_404 example.com --max-size 1000000
# Crawl with 20 parallel workers and verbose logging
find_404 example.com --workers 20 --verbose
Use in Github Actions
name: Check Website Links
on:
workflow_dispatch: # Manual trigger
schedule:
# Every Sunday at midnight
- cron: '0 0 * * 0'
jobs:
check-links:
uses: singiamtel/find_404/.github/workflows/check-links.yml@main
with:
url: 'https://example.com'
max_size: 5000000 # Optional: 5MB limit
# workers: 12 # Optional: 12 parallel workers
# max_depth: 5 # Optional: Crawl up to a maximum depth of 5 (only in the original domain, others always have depth 1)
# verbose: true # Optional: Enable verbose logging
Output
The tool generates a JSONL file named result_domain.jsonl containing details about each URL visited, including:
- URL
- Status code
- Page size
- Referrer (the page that linked to this URL)
Features
- Parallel crawling with configurable number of workers
- Finds broken links (HTTP status codes 4xx and 5xx)
- Checks page sizes against a configurable limit
- Follows redirects while staying within the same domain
- Handles both internal and external links
- Generates detailed JSONL reports
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file find_404-1.1.8.tar.gz.
File metadata
- Download URL: find_404-1.1.8.tar.gz
- Upload date:
- Size: 20.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2d0479f96f987b984ed59c358aa5571cd87c0eecc86803dbba96be2991a84b48
|
|
| MD5 |
c25f9f17b71cf9fd8ef2867a9466720a
|
|
| BLAKE2b-256 |
4b11d67460fe732445645e89ec8413bb0f91bca023cfadb8efb0e391bf875501
|
Provenance
The following attestation bundles were made for find_404-1.1.8.tar.gz:
Publisher:
publish.yml on singiamtel/find_404
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
find_404-1.1.8.tar.gz -
Subject digest:
2d0479f96f987b984ed59c358aa5571cd87c0eecc86803dbba96be2991a84b48 - Sigstore transparency entry: 206488814
- Sigstore integration time:
-
Permalink:
singiamtel/find_404@a9df02f01589b8d464ebfaff629ec1f0fe707827 -
Branch / Tag:
refs/tags/v1.1.8 - Owner: https://github.com/singiamtel
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@a9df02f01589b8d464ebfaff629ec1f0fe707827 -
Trigger Event:
release
-
Statement type:
File details
Details for the file find_404-1.1.8-py3-none-any.whl.
File metadata
- Download URL: find_404-1.1.8-py3-none-any.whl
- Upload date:
- Size: 7.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ca74f87b1caca6c870ac35a932bb2cda2583a78643b9b53f6c4ab3625dd3c6a9
|
|
| MD5 |
d68c08625ea13751ef4350172b8e38df
|
|
| BLAKE2b-256 |
5e94bf32820ee72354351c8e131591f4d1417740c4a7aec8717afb6f0f516253
|
Provenance
The following attestation bundles were made for find_404-1.1.8-py3-none-any.whl:
Publisher:
publish.yml on singiamtel/find_404
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
find_404-1.1.8-py3-none-any.whl -
Subject digest:
ca74f87b1caca6c870ac35a932bb2cda2583a78643b9b53f6c4ab3625dd3c6a9 - Sigstore transparency entry: 206488815
- Sigstore integration time:
-
Permalink:
singiamtel/find_404@a9df02f01589b8d464ebfaff629ec1f0fe707827 -
Branch / Tag:
refs/tags/v1.1.8 - Owner: https://github.com/singiamtel
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@a9df02f01589b8d464ebfaff629ec1f0fe707827 -
Trigger Event:
release
-
Statement type: