PHPackages                             haikson/sitemap-generator - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. haikson/sitemap-generator

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

haikson/sitemap-generator
=========================

Sitemap crawler and generator class

85039[6 issues](https://github.com/Haikson/sitemap-generator/issues)Python

Since Nov 22Pushed 2y ago6 watchersCompare

[ Source](https://github.com/Haikson/sitemap-generator)[ Packagist](https://packagist.org/packages/haikson/sitemap-generator)[ RSS](/packages/haikson-sitemap-generator/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

pysitemap
=========

[](#pysitemap)

Sitemap generator

installing
----------

[](#installing)

```
pip install sitemap-generator
```

requirements
------------

[](#requirements)

```
asyncio
aiofile
aiohttp
```

example
-------

[](#example)

```
import sys
import logging
from pysitemap import crawler
from pysitemap.parsers.lxml_parser import Parser

if __name__ == '__main__':
    if '--iocp' in sys.argv:
        from asyncio import events, windows_events
        sys.argv.remove('--iocp')
        logging.info('using iocp')
        el = windows_events.ProactorEventLoop()
        events.set_event_loop(el)

    # root_url = sys.argv[1]
    root_url = 'https://www.haikson.com'
    crawler(
        root_url, out_file='debug/sitemap.xml', exclude_urls=[".pdf", ".jpg", ".zip"],
        http_request_options={"ssl": False}, parser=Parser
    )
```

TODO
----

[](#todo)

- big sites with count of pages more then 100K will use more then 100MB memory. Move queue and done lists into database. Write Queue and Done backend classes based on
- Lists
- SQLite database
- Redis
- Write api for extending by user backends

changelog
---------

[](#changelog)

###  Health Score

25

—

LowBetter than 37% of packages

Maintenance19

Infrequent updates — may be unmaintained

Popularity17

Limited adoption so far

Community20

Small or concentrated contributor base

Maturity39

Early-stage or recently created project

 Bus Factor1

Top contributor holds 89.7% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/d878efd1231e058b059979d618213e7501927dd77e545c48be0cfbc7a09dfefc?d=identicon)[Haikson](/maintainers/Haikson)

---

Top Contributors

[![Haikson](https://avatars.githubusercontent.com/u/905083?v=4)](https://github.com/Haikson "Haikson (70 commits)")[![suraw00t](https://avatars.githubusercontent.com/u/73444825?v=4)](https://github.com/suraw00t "suraw00t (6 commits)")[![1kastner](https://avatars.githubusercontent.com/u/5236165?v=4)](https://github.com/1kastner "1kastner (1 commits)")[![ataylor32](https://avatars.githubusercontent.com/u/1054222?v=4)](https://github.com/ataylor32 "ataylor32 (1 commits)")

### Embed Badge

![Health badge](/badges/haikson-sitemap-generator/health.svg)

```
[![Health](https://phpackages.com/badges/haikson-sitemap-generator/health.svg)](https://phpackages.com/packages/haikson-sitemap-generator)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
