可以由其他脚本引用然后调用方法使用,也可以直接本脚本里面加代码使用,先用自己的业务代码处理出需要制作站点地图的链接,然后传到"
生成站点地图
"方法生成sitemap.xml文件,这个脚本是我网上找些现成的代码拼拼凑凑弄出来的.# -*- coding:utf-8 -*-
import datetime
import re
def get_url():
with open('url.txt', 'r', encoding='UTF-8') as f:
list1 = []
for i in f:
line = i.strip()
list1.append(line)
return list1
def creat_xml(filename, url_list): # 生成sitemap所需要的xml方法
header = '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">\n'
file = open(filename, 'a', encoding='utf-8')
file.writelines(header)
file.close()
for url in url_list:
times = datetime.datetime.now().strftime("%Y-%m-%dT%H:%M:%S+00:00")
urls = re.sub(r"&", "&", url) # 注意这里,在URL中如果含有&将会出错,所以需要进行转义
# 这个是生成的主体,可根据需求进行修改
ment = " <url>\n <loc>%s</loc>\n <lastmod>%s</lastmod>\n </url>\n" % (urls, times)
file = open(filename, 'a', encoding='utf-8')
file.writelines(ment)
file.close()
last = "</urlset>"
file = open(filename, 'a', encoding='utf-8')
file.writelines(last)
file.close()
def 创建xml(filename, url_list): # 生成sitemap所需要的xml方法
header = '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">\n'
file = open(filename, 'a', encoding='utf-8')
file.writelines(header)
file.close()
for url in url_list:
urls = re.sub(r"&", "&", url) # 注意这里,在URL中如果含有&将会出错,所以需要进行转义
# 这个是生成的主体,可根据需求进行修改
ment = " <url>\n <loc>%s</loc>\n </url>\n" % (urls)
file = open(filename, 'a', encoding='utf-8')
file.writelines(ment)
file.close()
last = "</urlset>"
file = open(filename, 'a', encoding='utf-8')
file.writelines(last)
file.close()
def 数组切割(list_collection, n):
"""
将集合均分,每份n个元素
:param list_collection:
:param n:
:return:返回的结果为评分后的每份可迭代对象
"""
for i in range(0, len(list_collection), n):
yield list_collection[i: i + n]
def 生成站点地图(全部链接数组,每个站点地图文件的最大链接数量=50000,站点地图文件名前缀="sitemap"):
"""
生成传入链接数组的站点地图,传入的数量无限制
"""
temp=数组切割(全部链接数组,每个站点地图文件的最大链接数量)
文件计数器 = 0
for 单个文件里的链接数组 in temp:
文件计数器+=1
创建xml(站点地图文件名前缀 + str(文件计数器) + ".xml",单个文件里的链接数组)
print("生成站点地图文件 "+站点地图文件名前缀 + str(文件计数器) + ".xml" +" 成功!")
if __name__ == '__main__':
需要生成站点地图的链接 = ["https://a.com","https://b.com","https://c.com","https://d.com","https://e.com"]
生成站点地图(需要生成站点地图的链接) #默认单个文件链接数量50000,默认文件名前缀sitemap
# 生成站点地图(需要生成站点地图的链接,2) #单个文件链接数量设置为2,默认文件名前缀sitemap
# 生成站点地图(需要生成站点地图的链接,2,"baidu") #单个文件链接数量设置为2,文件名前缀为baidu
文章评论