如何转谷歌XML Sitemaps到百度?

Bash

1 前言

最近WordPress安装“Google XML Sitemaps”插件,然而使用“百度资源搜索平台”提交却提示不接受Sitemaps索引列表,于是产生自己写脚本生成的想法。
关于“百度资源搜索平台”的操作菜单,详细如下,
https://ziyuan.baidu.com/linksubmit/index -> 单击【资源提交】-> 单击【sitemap】
关于本站的索引列表,详细请参阅如下链接,
https://www.cmdschool.org/sitemap.xml

2 最佳实践

2.1 创建处理脚本

mkdir ~/scripts/
vim ~/scripts/sitemap-baidu.sh

加入如下脚本,

#!/bin/bash

siteMapListPath=/tmp/sitemap-baidu.list
siteMapPath=/var/www/www.cmdschool.org/sitemap-baidu.xml

curl -s https://www.cmdschool.org/sitemap.xml | grep "loc" | grep ".xml" | sed -e "s/<loc>//g" -e "s/<\/loc>//g" -e "s/^[ \t]*//g" > $siteMapListPath
echo '<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl"?>' > $siteMapPath
echo '<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.siteMapPaths.org/schemas/siteMapPath/0.9 http://www.siteMapPaths.org/schemas/siteMapPath/0.9/siteMapPath.xsd" xmlns="http://www.siteMapPaths.org/schemas/siteMapPath/0.9"> ' >> $siteMapPath

for i in `cat $siteMapListPath`; do
curl -s $i | grep -v "?xml" | grep -v "urlset" | egrep "loc|lastmod|changefreq|priority" | sed -e "s/^[ \t]*<loc>/<url>\n\t\t<loc>/g" -e "s/<\/priority>/<\/priority>\n<\/url>/g" >> $siteMapPath
done
echo '</urlset>' >> $siteMapPath

2.2 添加计划任务自动更新

crontab -e

然后加入如下配置,

0 2 */1 * * sh  ~/scripts/sitemap-baidu.sh

2.3 测试转换的结果

使用谷歌浏览器输入如下链接浏览源代码,

view-source:https://www.cmdschool.org/sitemap-baidu.xml
没有评论

发表评论

Bash
如何命令查找docker集群实例关键字?

1 前言 一个问题,一篇文章,一出故事。 笔者定位某个IP地址在集群中的位置,于是笔者想到使用循环去 …

Bash
如何使用计划任务操作容器?

1 前言 一个问题,一篇文章,一出故事。 笔者今天需要根据一定的条件删除容器里面的过期文件,但由于容 …

Bash
如何实现主从存储目录镜像?

1 理论部分 1.1 工具的介绍 Inotify一种强大的、细粒度的、异步文件系统监控机制,它满足各 …