Python解析sitemap.xml

准备工作

首先,你的网站先生成好网站的网站地图sitemap.xml文件,示例如下:

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">  
  <url>  
    <loc>/page1</loc>  
    <lastmod>2023-07-10</lastmod>  
    <changefreq>daily</changefreq>  
    <priority>0.8</priority>  
  </url>  
  <url>  
    <loc>/page2</loc>  
    <lastmod>2023-07-01</lastmod>  
    <changefreq>weekly</changefreq>  
    <priority>0.6</priority>  
  </url>  
  <!-- 更多url元素 -->  
</urlset>

大致看一下这个样式结构,然后可以用Python写解析脚本。

编写Python脚本

import xml.etree.ElementTree as ET  
  
# 定义域名  
domain = "http://example.com"  
  
# 解析sitemap.xml文件并提取所有的URL  
def parse_sitemap(file_path):  
    tree = ET.parse(file_path)  
    root = tree.getroot()  
    urls = []  
    # 这里是有命名空间的,如果没有可以去掉{http://www.sitemaps.org/schemas/sitemap/0.9}
    for url_elem in root.findall('{http://www.sitemaps.org/schemas/sitemap/0.9}url'):  
        loc_elem = url_elem.find('{http://www.sitemaps.org/schemas/sitemap/0.9}loc')  
        if loc_elem is not None:  
            url = domain + loc_elem.text  
            urls.append(url)  
    return urls  
  
# 保存所有的URL到url.txt文件中  
def save_urls(urls, file_path):  
    with open(file_path, 'w') as file:  
        for url in urls:  
            file.write(url + '\n')  
  
# 主程序  
if __name__ == '__main__':  
    sitemap_file_path = 'sitemap.xml'  
    urls = parse_sitemap(sitemap_file_path)  
    url_file_path = 'url.txt'  
    save_urls(urls, url_file_path)  
    print("URLs have been saved to", url_file_path)

可以本地测试一下,生成提取的URL文件。

提交到搜索引擎

这个可以在百度的搜索后台查看:https://ziyuan.baidu.com/dashboard/index?site=xxx

然后可以用下面的代码来提交自己的页面url。

curl -H 'Content-Type:text/plain' --data-binary @./backup/urls.txt "http://data.zz.baidu.com/urls?site=https://www.xxx.com&token=xxx"


请遵守《互联网环境法规》文明发言,欢迎讨论问题
扫码反馈

扫一扫,反馈当前页面

咨询反馈
扫码关注
返回顶部