如何用Python生成sitemap.xml网站地图


最简单可靠的方式是用Python标准库xml.etree.ElementTree手动构造符合Sitemap协议的XML,根节点为urlset,每个url包含必填loc及可选lastmod、changefreq、priority,确保loc为绝对URL、lastmod为ISO 8601格式。

如何用python生成sitemap.xml网站地图

用Python生成 sitemap.xml 最简单可靠的方式是手动构造符合Sitemap协议的XML内容,或借助轻量库(如 xml.etree.ElementTree 或第三方库 django-sitemaps / flask-sitemap)。对大多数静态网站或小型动态站,纯Python + 标准库就足够,无需引入复杂框架。

使用 xml.etree.ElementTree 构建标准 sitemap.xml

Python 标准库中的 xml.etree.ElementTree 足以生成合法、可被搜索引擎识别的 sitemap。关键点:根节点为 urlset,每个 url 包含 loc(必填),可选 lastmodchangefreqpriority

  • 确保 loc 是完整、可访问的绝对 URL(如 https://www.php.cn/link/e4639aefe47ac53c3df3d8f9846b5161blog/post1/
  • lastmod 格式必须为 YYYY-MM-DDYYYY-MM-DDThh:mm:ss+00:00(推荐 ISO 8601)
  • 避免特殊字符未转义——ElementTree 会自动处理,但手动拼接字符串时需用 xml.sax.saxutils.escape()

一个可直接运行的生成脚本示例

以下脚本生成包含 3 个页面的 sitemap.xml,保存到当前目录:

import xml.etree.ElementTree as ET
from datetime import datetime
<h1>创建根元素</h1><p>urlset = ET.Element("urlset", xmlns="<a href="https://www.php.cn/link/654f3a10edb3bb1755a43cc4f9be9dc6">https://www.php.cn/link/654f3a10edb3bb1755a43cc4f9be9dc6</a>")</p><h1>定义页面数据(实际项目中可从数据库、文件列表或 CMS API 获取)</h1><p>pages = [
{"loc": "<a href="https://www.php.cn/link/e4639aefe47ac53c3df3d8f9846b5161">https://www.php.cn/link/e4639aefe47ac53c3df3d8f9846b5161</a>", "lastmod": "2025-05-01", "changefreq": "weekly", "priority": "1.0"},
{"loc": "<a href="https://www.php.cn/link/e4639aefe47ac53c3df3d8f9846b5161about/">https://www.php.cn/link/e4639aefe47ac53c3df3d8f9846b5161about/</a>", "lastmod": "2025-04-22", "changefreq": "monthly", "priority": "0.8"},
{"loc": "<a href="https://www.php.cn/link/e4639aefe47ac53c3df3d8f9846b5161blog/">https://www.php.cn/link/e4639aefe47ac53c3df3d8f9846b5161blog/</a>", "lastmod": "2025-05-10", "changefreq": "daily", "priority": "0.9"},
]</p><p>for page in pages:
url = ET.SubElement(urlset, "url")
ET.SubElement(url, "loc").text = page["loc"]
ET.SubElement(url, "lastmod").text = page["lastmod"]
ET.SubElement(url, "changefreq").text = page["changefreq"]
ET.SubElement(url, "priority").text = page["priority"]</p><h1>写入文件(缩进需手动处理,或用第三方库如 xmltodict / lxml 美化)</h1><p>tree = ET.ElementTree(urlset)
tree.write("sitemap.xml", encoding="utf-8", xml_declaration=True)</p><p>print("✅ sitemap.xml 已生成")

运行后得到结构清晰、合规的 XML 文件,可直接部署到网站根目录。

通达CMS蓝色中英双语企业网站1.4.2 通达CMS蓝色中英双语企业网站1.4.2

通达CMS是采用PHP+MYSQL进行开发的。支持伪静态设置,可生成google和百度地图,支持自定义url、关键字和描述,利于收录...后台简单明了,代码简洁,采用DIV+CSS 利于SEO,企业建站系统是一套专门用于中小企业网站建设的网站管理系统。

通达CMS蓝色中英双语企业网站1.4.2 0 查看详情 通达CMS蓝色中英双语企业网站1.4.2

处理大型网站:分片与索引(sitemap index)

单个 sitemap 最多支持 5 万条 URL,总大小不超过 50MB(压缩后)。超限时需拆分为多个 sitemap 并生成 sitemap_index.xml

  • 将 URL 列表按每 4 万条一组切分
  • 为每组生成独立 sitemap(如 sitemap-1.xml, sitemap-2.xml
  • sitemapindex 根节点汇总所有子 sitemap 的 loc 和可选 lastmod
  • 在 robots.txt 中添加 Sitemap: https://www.php.cn/link/e4639aefe47ac53c3df3d8f9846b5161sitemap_index.xml

自动化建议:集成到构建流程

不推荐手动生成。应将其嵌入网站构建环节:

  • 静态站点(如 Jekyll、Hugo、MkDocs):用插件或自定义脚本,在 build 后自动生成
  • Flask/Django:在管理命令或部署钩子中调用生成函数(Django 可直接用 django.contrib.sitemaps
  • CI/CD(如 GitHub Actions):添加 Python 步骤,每次 push 后更新并提交 sitemap.xml

保持 sitemap 与线上内容实时一致,比“一次性生成”更重要。

以上就是如何用Python生成sitemap.xml网站地图的详细内容,更多请关注其它相关文章!


# 可直接  # 西安网站优化推广怎么选  # 低价网站建设免费咨询  # 兴化市优化网站建设  # 茂名seo公司推荐30火星  # 莘县seo网站排名  # 关于母婴店的营销与推广  # 北京网站推广工资水平  # 手游推广营销成本  # 太仓网站建设免费  # 高端网站优化价格  # 最简单  # 第三方  # 自定义  # 三种  # python  # 可选  # 中英  # 企业网站  # 如何用  # 网站建设的网站  # yy  # 标准库  # django  # 搜索引擎  # ai  # github  # cms  # go  # git 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 优化推广96088 】 【 技术知识133117 】 【 IDC资讯59369 】 【 网络运营7196 】 【 IT资讯61894


相关推荐: 抖音网页版地址直接进入_抖音网页版在线观看入口  《小黑盒》删除历史浏览方法  创建快捷方式启动系统保护  基于键值条件高效映射 Pandas DataFrame 多列数据  Python对象引用与属性赋值:理解链表中的行为  TikTok网页版入口快速访问 TikTok官网账号登录方法  ao3入口镜像地址 ao3镜像入口可靠跳转  《洛克王国:世界》国家队搭配攻略  KFC邀请码怎么使用领额外优惠_KFC邀请码输入方式与额外优惠代码获取方法  极兔快递官网查询入口手机版 手机极兔快递登录查询入口官方  Yandex俄罗斯搜索引擎官网入口 Yandex网页端直接访问  我的世界官方网址入口 我的世界游戏主页直达入口  MySQL多重关联查询:利用别名高效获取同一表的多个关联字段  抖音小程序怎么开通?小程序开通条件是什么?  键盘测试软件哪个好_键盘故障检测工具推荐  《绝区零》2.3前瞻|直播|内容介绍  餐馆菜篮选购指南  2025考研成绩查询时间入口分享  海棠书屋官方在线书籍入口 海棠书屋文学作品浏览官网链接  WooCommerce 新客户订单自动添加管理员备注教程  mail.qq.com登录入口 QQ邮箱网页版直达  PHP使用DOMDocument与XPath精准追加XML元素教程  Golang如何初始化module项目_Golang module init使用说明  英雄联盟争者留名活动介绍  《腾讯相册管家》注销账号方法  Lar*el 关联查询:同时筛选父表与子表数据的高效策略  yy漫画官方网站登录入口_yy漫画在线阅读页面地址  厨房地面防滑垫的油污怎么洗? 机洗和手洗防滑垫的注意事项  CSS如何在页面中引入重置样式_使用Normalize.css或Reset.css统一浏览器默认样式  管理打开的编辑器:固定、分组和关闭技巧  126邮箱网页在线登录2025_126邮箱网页版入口官方地址  微信客户端如何找回密码_微信客户端忘记密码找回方法  《鹿路通》退余额方法  《一起考教师》账号注销方法  德邦物流在线查询系统 德邦快递货物运输追踪  如何使用CSS Grid实现“大方块左侧,小方块右侧垂直堆叠”的水平布局  猫眼电影app怎么查询电影院的营业时间_猫眼电影影院营业时间查询教程  小米倒班助手添加日历提醒  虫虫助手如何更新游戏  在XML中嵌入二进制数据(如图片)的最佳实践是什么? Base64编码与解析注意事项  《领英》查看屏蔽名单方法  汽水音乐官网网页版入口 汽水音乐官网网页版在线入口  《i莞家》修改昵称方法  mysql导入sql文件能分批导入吗_mysql分批次导入大sql文件的实用技巧  如何查询个人病历记录  PHP 4 函数中引用参数的默认值限制与解决方案  键盘声音异常怎么回事_键盘异响怎么处理  Teambition网盘如何共享文件  《海底捞》点外卖方法  pubmed数据库官方主页_pubmed学术论文查找官网直达 

 2025-12-18

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

运城市盐湖区信雨科技有限公司


运城市盐湖区信雨科技有限公司

运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。

 8156699

 13765294890

 8156699@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.