小旋风蜘蛛池自动定时添加谷歌可识别站点地图

2024-03-05 13:20

本文主要是介绍小旋风蜘蛛池自动定时添加谷歌可识别站点地图,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 问题:

在使用小旋风蜘蛛池向谷歌添加自己的站点地图时,会出现无法识别的错误,因为每次访问https://域名/sitemap/google.xml的时候数据都会改变

解决思路:

那么我们可以通过访问这个会改变数据的xml来自己获取自己的xml并作为一个不会变数据的xml来进行提交

python代码

import requests
from xml.etree import ElementTree as ET
import re
import os
import argparseparser = argparse.ArgumentParser(description='站点目录自动生成 output.xml')
parser.add_argument('domain',help='域名')
def fetch_sitemap(domain):url = f'https://{domain}/sitemap/google.xml'headers = {'Host': f'{domain}','Cache-Control': 'max-age=0','Sec-Ch-Ua': '"Chromium";v="103", ".Not/A)Brand";v="99"','Sec-Ch-Ua-Mobile': '?0','Sec-Ch-Ua-Platform': '"Windows"','Upgrade-Insecure-Requests': '1','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/536.36 (KHTML, like Gecko) Chrome/105.0.5060.53 Safari/537.36','Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9','Sec-Fetch-Site': 'none','Sec-Fetch-Mode': 'navigate','Sec-Fetch-User': '?1','Sec-Fetch-Dest': 'document','Accept-Encoding': 'gzip, deflate','Accept-Language': 'zh-CN,zh;q=0.9'}try:response = requests.get(url, headers=headers)response.raise_for_status()  # 抛出异常如果请求不成功except requests.exceptions.RequestException as e:print(f"Error fetching sitemap: {e}")return Nonereturn response.textdef merge_xml(xml_list):# 创建一个根元素root = ET.Element("root")# 遍历每个XML字符串,解析为Element对象,并添加到根元素下for xml_string in xml_list:try:xml_element = ET.fromstring(xml_string)root.extend(xml_element)except ET.ParseError as e:print(f"Error parsing XML: {e}")# 创建一个新的XML树merged_tree = ET.ElementTree(root)# 返回合并后的XML字符串return ET.tostring(root, encoding='utf-8').decode('utf-8')def save_to_file(data, output_file):with open(output_file, 'w', encoding='utf-8') as file:file.write(data)print(f"")xmlchange()def xmlchange():# 读取原始XML文件with open('output1.xml', 'r', encoding='utf-8') as file:xml_content = file.read()# 删除所有ns0:前缀xml_content = re.sub(r'ns0:', '', xml_content)# 修改文件的第一行xml_content = '<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"><url>' + \xml_content.split('\n', 1)[1]xml_content = re.sub(r'</root>', '</urlset>', xml_content)# 将修改后的内容写回文件with open('output.xml', 'w', encoding='utf-8') as file:file.write(xml_content)# 删除output1.txt文件if os.path.exists('output1.xml'):os.remove('output1.xml')print("Successful")# 调用函数并传入XML文件路径if __name__ == "__main__":args = parser.parse_args()output_file = "output1.xml"num_requests = 10sitemap_data_list = []for _ in range(num_requests):sitemap_data = fetch_sitemap(args.domain)if sitemap_data:sitemap_data_list.append(sitemap_data)merged_sitemap = merge_xml(sitemap_data_list)if merged_sitemap:save_to_file(merged_sitemap, output_file)

使用方法

  1. num_requests为请求次数,按照需要的xml量填写

  2. python getxml.py "域名"

  3. 输出output.xml 

添加宝塔定时任务

#!/bin/bash# 执行Python脚本
python3 /root/getxml.py 你的域名# 检查Python脚本是否成功执行
if [ $? -eq 0 ]; then# 移动output.xml到指定文件夹mv output.xml 网站根目录echo "成功移动文件到 网站根目录"
elseecho "Python脚本执行失败"
fi

使用方法

  1. 先将getxml.py(上方python文件)放入你的root目录下
  2. 然后将定时任务内的"你的域名"和"网站根目录"写好
  3. 可设置多个域名,实现某时间段为某域名的站点地图

即可直接向谷歌提交https://域名/output.xml为你的站点地图

温馨提示:记得安装pip3包,否则python文件执行会报错!

 

这篇关于小旋风蜘蛛池自动定时添加谷歌可识别站点地图的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/776640

相关文章

如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解

《如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解》:本文主要介绍如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别的相关资料,描述了如何使用海康威视设备网络SD... 目录前言开发流程问题和解决方案dll库加载不到的问题老旧版本sdk不兼容的问题关键实现流程总结前言作为

Go Mongox轻松实现MongoDB的时间字段自动填充

《GoMongox轻松实现MongoDB的时间字段自动填充》这篇文章主要为大家详细介绍了Go语言如何使用mongox库,在插入和更新数据时自动填充时间字段,从而提升开发效率并减少重复代码,需要的可以... 目录前言时间字段填充规则Mongox 的安装使用 Mongox 进行插入操作使用 Mongox 进行更

C语言中自动与强制转换全解析

《C语言中自动与强制转换全解析》在编写C程序时,类型转换是确保数据正确性和一致性的关键环节,无论是隐式转换还是显式转换,都各有特点和应用场景,本文将详细探讨C语言中的类型转换机制,帮助您更好地理解并在... 目录类型转换的重要性自动类型转换(隐式转换)强制类型转换(显式转换)常见错误与注意事项总结与建议类型

Spring Boot 整合 ShedLock 处理定时任务重复执行的问题小结

《SpringBoot整合ShedLock处理定时任务重复执行的问题小结》ShedLock是解决分布式系统中定时任务重复执行问题的Java库,通过在数据库中加锁,确保只有一个节点在指定时间执行... 目录前言什么是 ShedLock?ShedLock 的工作原理:定时任务重复执行China编程的问题使用 Shed

IDEA如何让控制台自动换行

《IDEA如何让控制台自动换行》本文介绍了如何在IDEA中设置控制台自动换行,具体步骤为:File-Settings-Editor-General-Console,然后勾选Usesoftwrapsin... 目录IDEA如何让控制台自http://www.chinasem.cn动换行操作流http://www

vscode保存代码时自动eslint格式化图文教程

《vscode保存代码时自动eslint格式化图文教程》:本文主要介绍vscode保存代码时自动eslint格式化的相关资料,包括打开设置文件并复制特定内容,文中通过代码介绍的非常详细,需要的朋友... 目录1、点击设置2、选择远程--->点击右上角打开设置3、会弹出settings.json文件,将以下内

Python脚本实现自动删除C盘临时文件夹

《Python脚本实现自动删除C盘临时文件夹》在日常使用电脑的过程中,临时文件夹往往会积累大量的无用数据,占用宝贵的磁盘空间,下面我们就来看看Python如何通过脚本实现自动删除C盘临时文件夹吧... 目录一、准备工作二、python脚本编写三、脚本解析四、运行脚本五、案例演示六、注意事项七、总结在日常使用

基于Python开发电脑定时关机工具

《基于Python开发电脑定时关机工具》这篇文章主要为大家详细介绍了如何基于Python开发一个电脑定时关机工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 简介2. 运行效果3. 相关源码1. 简介这个程序就像一个“忠实的管家”,帮你按时关掉电脑,而且全程不需要你多做

SpringBoot项目启动后自动加载系统配置的多种实现方式

《SpringBoot项目启动后自动加载系统配置的多种实现方式》:本文主要介绍SpringBoot项目启动后自动加载系统配置的多种实现方式,并通过代码示例讲解的非常详细,对大家的学习或工作有一定的... 目录1. 使用 CommandLineRunner实现方式:2. 使用 ApplicationRunne

解决Cron定时任务中Pytest脚本无法发送邮件的问题

《解决Cron定时任务中Pytest脚本无法发送邮件的问题》文章探讨解决在Cron定时任务中运行Pytest脚本时邮件发送失败的问题,先优化环境变量,再检查Pytest邮件配置,接着配置文件确保SMT... 目录引言1. 环境变量优化:确保Cron任务可以正确执行解决方案:1.1. 创建一个脚本1.2. 修