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

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

相关文章

微信公众号脚本-获取热搜自动新建草稿并发布文章

《微信公众号脚本-获取热搜自动新建草稿并发布文章》本来想写一个自动化发布微信公众号的小绿书的脚本,但是微信公众号官网没有小绿书的接口,那就写一个获取热搜微信普通文章的脚本吧,:本文主要介绍微信公众... 目录介绍思路前期准备环境要求获取接口token获取热搜获取热搜数据下载热搜图片给图片加上标题文字上传图片

SpringBoot中封装Cors自动配置方式

《SpringBoot中封装Cors自动配置方式》:本文主要介绍SpringBoot中封装Cors自动配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录SpringBoot封装Cors自动配置背景实现步骤1. 创建 GlobalCorsProperties

idea中创建新类时自动添加注释的实现

《idea中创建新类时自动添加注释的实现》在每次使用idea创建一个新类时,过了一段时间发现看不懂这个类是用来干嘛的,为了解决这个问题,我们可以设置在创建一个新类时自动添加注释,帮助我们理解这个类的用... 目录前言:详细操作:步骤一:点击上方的 文件(File),点击&nbmyHIgsp;设置(Setti

Spring定时任务只执行一次的原因分析与解决方案

《Spring定时任务只执行一次的原因分析与解决方案》在使用Spring的@Scheduled定时任务时,你是否遇到过任务只执行一次,后续不再触发的情况?这种情况可能由多种原因导致,如未启用调度、线程... 目录1. 问题背景2. Spring定时任务的基本用法3. 为什么定时任务只执行一次?3.1 未启用

使用PyTorch实现手写数字识别功能

《使用PyTorch实现手写数字识别功能》在人工智能的世界里,计算机视觉是最具魅力的领域之一,通过PyTorch这一强大的深度学习框架,我们将在经典的MNIST数据集上,见证一个神经网络从零开始学会识... 目录当计算机学会“看”数字搭建开发环境MNIST数据集解析1. 认识手写数字数据库2. 数据预处理的

Spring Boot 集成 Quartz 使用Cron 表达式实现定时任务

《SpringBoot集成Quartz使用Cron表达式实现定时任务》本文介绍了如何在SpringBoot项目中集成Quartz并使用Cron表达式进行任务调度,通过添加Quartz依赖、创... 目录前言1. 添加 Quartz 依赖2. 创建 Quartz 任务3. 配置 Quartz 任务调度4. 启

一文详解SQL Server如何跟踪自动统计信息更新

《一文详解SQLServer如何跟踪自动统计信息更新》SQLServer数据库中,我们都清楚统计信息对于优化器来说非常重要,所以本文就来和大家简单聊一聊SQLServer如何跟踪自动统计信息更新吧... SQL Server数据库中,我们都清楚统计信息对于优化器来说非常重要。一般情况下,我们会开启"自动更新

Pytorch微调BERT实现命名实体识别

《Pytorch微调BERT实现命名实体识别》命名实体识别(NER)是自然语言处理(NLP)中的一项关键任务,它涉及识别和分类文本中的关键实体,BERT是一种强大的语言表示模型,在各种NLP任务中显著... 目录环境准备加载预训练BERT模型准备数据集标记与对齐微调 BERT最后总结环境准备在继续之前,确

Spring Boot中定时任务Cron表达式的终极指南最佳实践记录

《SpringBoot中定时任务Cron表达式的终极指南最佳实践记录》本文详细介绍了SpringBoot中定时任务的实现方法,特别是Cron表达式的使用技巧和高级用法,从基础语法到复杂场景,从快速启... 目录一、Cron表达式基础1.1 Cron表达式结构1.2 核心语法规则二、Spring Boot中定

使用Folium在Python中进行地图可视化的操作指南

《使用Folium在Python中进行地图可视化的操作指南》在数据分析和可视化领域,地图可视化是一项非常重要的技能,它能够帮助我们更直观地理解和展示地理空间数据,Folium是一个基于Python的地... 目录引言一、Folium简介与安装1. Folium简介2. 安装Folium二、基础使用1. 创建