Skip to main content

Grab and recursively parse website sitemaps, robots.txt, and other related files.

Project description

Sitemap Utility Suite

A Python-based utility suite designed to fetch and analyze sitemaps and other well-known files from websites.

Table of Contents

Features

  • Fetch and parse XML sitemaps from websites
  • Recursively traverse sitemap indices
  • Extract sitemap URLs from robots.txt files
  • Fetch common well-known files (robots.txt, humans.txt, security.txt)
  • Robust error handling and logging
  • User-agent spoofing for web requests

Installation

  1. Clone the repository:

    git clone https://github.com/yourusername/sitemap-utility-suite.git
    cd sitemap-utility-suite
    
  2. Install the required dependencies:

    pip install -r requirements.txt
    

Installation with documentation dependencies

To install Sitemap Grabber with documentation dependencies:

  1. Ensure you have flit installed:

    pip install flit
    
  2. Install the package with documentation dependencies:

    flit install --deps develop --extras docs
    

For developers who want to contribute to the project:

  1. Install the package with both documentation and development dependencies:
    flit install --deps develop --extras "docs,dev"
    

Alternatively, if you prefer using pip:

pip install -e ".[docs,dev]"

This will install the package in editable mode along with all necessary dependencies for building the documentation and development tools.


Usage

Here's a basic example of how to use the SitemapGrabber:

from sitemap_grabber import SitemapGrabber

# Initialize the SitemapGrabber with a website URL
grabber = SitemapGrabber("https://example.com")

# Fetch all sitemaps
grabber.get_all_sitemaps()

# Print the discovered sitemap URLs
for url in grabber.sitemap_urls:
    print(url)

To fetch well-known files:

from well_known_files import WellKnownFiles

# Initialize the WellKnownFiles with a website URL
wkf = WellKnownFiles("https://example.com")

# Fetch robots.txt
robots_txt = wkf.fetch("robots.txt")
print(robots_txt)

# Fetch security.txt
security_txt = wkf.fetch("security.txt")
print(security_txt)

Components

SitemapGrabber

The SitemapGrabber class is responsible for discovering and fetching XML sitemaps from a given website. It can:

  • Extract sitemap URLs from robots.txt
  • Check common sitemap locations
  • Recursively traverse sitemap indices
  • Handle relative and absolute URLs

WellKnownFiles

The WellKnownFiles class fetches common well-known files from websites, including:

  • robots.txt
  • humans.txt
  • security.txt

It includes caching to avoid redundant requests and can handle various edge cases in HTTP responses.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.


For more information or to report issues, please visit the GitHub repository.

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

sitemap_grabber-2.0.0.tar.gz (13.3 kB view details)

Uploaded Source

Built Distribution

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

sitemap_grabber-2.0.0-py3-none-any.whl (6.8 kB view details)

Uploaded Python 3

File details

Details for the file sitemap_grabber-2.0.0.tar.gz.

File metadata

  • Download URL: sitemap_grabber-2.0.0.tar.gz
  • Upload date:
  • Size: 13.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.32.3

File hashes

Hashes for sitemap_grabber-2.0.0.tar.gz
Algorithm Hash digest
SHA256 4bbbf142f2bdd6d238fae0b5224f615c1e354fc298f4660f443618366d7956a9
MD5 679563cade801cf28dbef45219e53dc8
BLAKE2b-256 6cf5ae49fe4f2e3252408f63e0cf3add0037023a64f19dec4c896e159f1fa208

See more details on using hashes here.

File details

Details for the file sitemap_grabber-2.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for sitemap_grabber-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 68af066c15f064456e6fd9dba2eb18794794bd7adc7fb8048e685d1f798f2bc1
MD5 d2fc883204fe55f643b569faf0255b28
BLAKE2b-256 d37be69d6588cfff93f1609b42dada9694c88174e8b8ae36e2ddd6656d268ab2

See more details on using hashes here.

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