如何转谷歌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
如何实现文件夹路径转纯数字符串?

1 前言 一个问题,一篇文章,一出故事。 由于由于需要设置某目录的配额,配额要求为每个目录指定一个项 …

Bash
如何统计Linux打开文件前10进程?

1 前言 一个问题,一篇文章,一出故事。 笔者生产环境有台服务最近压力比较大,打开的文件数量不断地往 …

Bash
如何获取VSFTP昨天活跃和有效用户?

1 前言 一个问题,一篇文章,一出故事。 笔者生产环境有台老旧的FTP服务器,用户众多。笔者希望每天 …