Skip to main content

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: yourusername/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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

find_404-1.1.4.tar.gz (19.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

find_404-1.1.4-py3-none-any.whl (7.8 kB view details)

Uploaded Python 3

File details

Details for the file find_404-1.1.4.tar.gz.

File metadata

  • Download URL: find_404-1.1.4.tar.gz
  • Upload date:
  • Size: 19.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for find_404-1.1.4.tar.gz
Algorithm Hash digest
SHA256 9df6cc573c114329935d7334d52c2c0b6b544a5f06099302051b3832fa65c4d7
MD5 5bb8af9db8d6666e8fc7d5997c79f95b
BLAKE2b-256 82a71cf7b128e773a6082a36696fe067f40983cabb56043985132bcbca3dfd2c

See more details on using hashes here.

Provenance

The following attestation bundles were made for find_404-1.1.4.tar.gz:

Publisher: publish.yml on singiamtel/find_404

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file find_404-1.1.4-py3-none-any.whl.

File metadata

  • Download URL: find_404-1.1.4-py3-none-any.whl
  • Upload date:
  • Size: 7.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for find_404-1.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 a15783f69f66a8da2a43eab90c2aab958f617ca302c7140feb3596cd7b9f72b7
MD5 281c16f4d1f98b51fb0ade73e991bcb6
BLAKE2b-256 2230a94f4b619c531ca3a4c3168f6466ba8670bf46c4ade1c81a007a39a9c3c9

See more details on using hashes here.

Provenance

The following attestation bundles were made for find_404-1.1.4-py3-none-any.whl:

Publisher: publish.yml on singiamtel/find_404

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page