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

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

相关文章

无人叉车3d激光slam多房间建图定位异常处理方案-墙体画线地图切分方案

墙体画线地图切分方案 针对问题:墙体两侧特征混淆误匹配,导致建图和定位偏差,表现为过门跳变、外月台走歪等 ·解决思路:预期的根治方案IGICP需要较长时间完成上线,先使用切分地图的工程化方案,即墙体两侧切分为不同地图,在某一侧只使用该侧地图进行定位 方案思路 切分原理:切分地图基于关键帧位置,而非点云。 理论基础:光照是直线的,一帧点云必定只能照射到墙的一侧,无法同时照到两侧实践考虑:关

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推

让树莓派智能语音助手实现定时提醒功能

最初的时候是想直接在rasa 的chatbot上实现,因为rasa本身是带有remindschedule模块的。不过经过一番折腾后,忽然发现,chatbot上实现的定时,语音助手不一定会有响应。因为,我目前语音助手的代码设置了长时间无应答会结束对话,这样一来,chatbot定时提醒的触发就不会被语音助手获悉。那怎么让语音助手也具有定时提醒功能呢? 我最后选择的方法是用threading.Time

基于51单片机的自动转向修复系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 单片机

Python3 BeautifulSoup爬虫 POJ自动提交

POJ 提交代码采用Base64加密方式 import http.cookiejarimport loggingimport urllib.parseimport urllib.requestimport base64from bs4 import BeautifulSoupfrom submitcode import SubmitCodeclass SubmitPoj():de

ActiveMQ—消息特性(延迟和定时消息投递)

ActiveMQ消息特性:延迟和定时消息投递(Delay and Schedule Message Delivery) 转自:http://blog.csdn.net/kimmking/article/details/8443872 有时候我们不希望消息马上被broker投递出去,而是想要消息60秒以后发给消费者,或者我们想让消息没隔一定时间投递一次,一共投递指定的次数。。。 类似

全英文地图/天地图和谷歌瓦片地图杂交/设备分布和轨迹回放/无需翻墙离线使用

一、前言说明 随着风云局势的剧烈变化,对我们搞软件开发的人员来说,影响也是越发明显,比如之前对美对欧的软件居多,现在慢慢的变成了对大鹅和中东以及非洲的居多,这两年明显问有没有俄语或者阿拉伯语的输入法的增多,这要是放在2019年以前,一年也遇不到一个人问这种需求场景的。 地图应用这块也是,之前的应用主要在国内,现在慢慢的多了一些外国的应用场景,这就遇到一个大问题,我们平时主要开发用的都是国内的地

Clion不识别C代码或者无法跳转C语言项目怎么办?

如果是中文会显示: 此时只需要右击项目,或者你的源代码目录,将这个项目或者源码目录标记为项目源和头文件即可。 英文如下:

Shell脚本实现自动登录服务器

1.登录脚本 login_server.sh #!/bin/bash# ReferenceLink:https://yq.aliyun.com/articles/516347#show all host infos of serverList.txtif [[ -f ./serverList.txt ]]thenhostNum=`cat ./serverList.txt | wc -l`e

Jenkins 通过 Version Number Plugin 自动生成和管理构建的版本号

步骤 1:安装 Version Number Plugin 登录 Jenkins 的管理界面。进入 “Manage Jenkins” -> “Manage Plugins”。在 “Available” 选项卡中搜索 “Version Number Plugin”。选中并安装插件,完成后可能需要重启 Jenkins。 步骤 2:配置版本号生成 打开项目配置页面。在下方找到 “Build Env