Python3 package for writing large XML sitemaps with no external dependencies
Project description
py-xml-sitemap-writer
Python3 package for writing large XML sitemaps with no external dependencies.
pip install py-xml-sitemap-writer
Usage
This package is meant to generate sitemaps with hundred of thousands URLs in memory-efficient way by making using of iterators to populate sitemap with URLs.
from typing import Iterator
from xml_sitemap_writer import XMLSitemap
def get_products_for_sitemap() -> Iterator[str]:
"""
Replace the logic below with a query from your database.
"""
for idx in range(1, 1000001):
yield f"https://your.site.io/product/{idx}.html"
with XMLSitemap(path='/your/web/root', root_url='http:s//your.site.io') as sitemap:
sitemap.add_section('products')
sitemap.add_urls(get_products_for_sitemap())
sitemap.xml
and sitemap-00N.xml.gz
files will be generated once this code runs:
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<!-- Powered by https://github.com/pigs-will-fly/py-xml-sitemap-writer -->
<!-- 100000 urls -->
<sitemap><loc>https://your.site.io/sitemap-products-001.xml.gz</loc></sitemap>
<sitemap><loc>https://your.site.io/sitemap-products-002.xml.gz</loc></sitemap>
...
</sitemapindex>
And gzipped sub-sitemaps with up to 15.000 URLs each:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url><loc>https://your.site.io/product/1.html</loc></url>
<url><loc>https://your.site.io/product/2.html</loc></url>
<url><loc>https://your.site.io/product/3.html</loc></url>
...
</urlset>
<!-- 15000 urls in the sitemap -->
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
Built Distribution
Close
Hashes for xml_sitemap_writer-0.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3fdf94fdcf57ed77e008e3cc3c158ac59020c3894cf87c32bc19e87f281c578e |
|
MD5 | 80d31dec2044584efa251da27f9727ca |
|
BLAKE2b-256 | 0bba5236a8aacd54c4886da2c8bc634d2d2f0ed51604c5d84526dd3225debf68 |