摘要
如果您了解百度提交的几种模式,相信大家都知道在提交的效率上:主动推送>自动推送>sitemap,本文针对主动推送进行讲解,非常感谢lovenight 提供的百度主动推送脚本hexo向百度提交网址.py ,但部分网上说法由于百度不会收录github网站域名的提交导致说此脚本失效。如果热衷于HEXO,你会发现相对于Github国内还有一个coding代码托管,所以我们可以将我们的网站都一同托管到Github和coding,通过某些方法实现让lovenight的百度推送脚本只推送coding域名的网址到百度(此为本文目的)。
HEXO-建站系列
HEXO-优化系列
HEXO-进阶系列
正文
实现思路 利用脚本的对sitemap.xml和baidusitemap.xml的去重复网址结合推送百度的原理,我们仅仅需要替换掉相关代码的sitemap.xml部分,以使得脚本不会推送Google下的sitemap.xml的网址到百度。前提sitemap.xml对应Github域名的网址和baidusitemap.xml对应Coding的域名网址,如果你希望了解如和实现对应的域名的站点地图实现,请点击”Github(google提交)+Coding(百度提交),自适应提交搜索引擎(绝招来啦!)“
实现方法介绍
以下是lovenight的推送脚本代码:
1 | #!/usr/bin/env python |
我们关注其中的几行代码:
1 | baidu_sitemap = os.path.join(sys.path[0], 'public', 'baidusitemap.xml') |
通过这几行代码分析,我们发现此脚本需要捉的网址信息为google下的sitemap.xml
和百度下的baidusitemap.xml
的去重复的地址结合,既让是结合,我们可以创建一个与baidusitemap.xml的格式一样的占位文件如命名为baidusitemap_zhanwei.xml
并将代码修改为如下:
1 | baidu_sitemap = os.path.join(sys.path[0], 'public', 'baidusitemap.xml') |
这样的结果是:此脚本仅仅会推送百度与您建立的占位文件的地址结合。所以脚本不会推送github域名的网址到百度搜索引擎。简直一举两得的方法。
脚本运行问题
这里列出脚本运行时可能出现的问题,我用的Pyhton的版本是2.7.10
,在运行时出现了这几个问题,希望这些解决方法能帮到您
问题一
问题表现
1 | C:\Users\jory.he\Desktop\myhexo> |
解决方法:
在你的推送接口字符串记得加上单引号
问题二
问题表现:
1 | C:\Users\jory.he\Desktop\myhexo>pushbaidu.py |
解决方法:
运行以下命令安装相关模块:pip install BeautifulSoup4
效果:
1 | C:\Users\jory.he\Desktop\myhexo>pip install BeautifulSoup4 |
问题三
问题表现:
1 | C:\Users\jory.he\Desktop\myhexo>pushbaidu.py |
解决方法:
由于您的Python版本非3.0以上,你需要额外插入一个模块,代码如下
1 | #!/usr/bin/env python |
问题四
问题表现:
1 | C:\Users\jory.he\Desktop\myhexo>pushbaidu.py |
解决方法:
运行一下命令,安装相应模块:pip install lxml
效果如下:
1 | C:\Users\jory.he\Desktop\myhexo>pip install lxml |
##总结
如果经过已经您已经成功使用此脚本并合理的将coding的网址推送到百度,脚本允运行效果如下:
注意:python脚本一般后缀为.py文件,要运行次脚本你需要安装python环境安装包下载Python,其次简单描述此脚本的使用方法,你需要将脚本命名为
xxx.py放到HEXO根目录下
,通过hexo clean& hexo g
编译后,在运行xxx.py脚本即开始推送你的网站地图链接。
1 | C:\Users\jory.he\Desktop\myhexo>pushbaidu.py |
结语
如果你还需要了解更多技术文章信息,请继续关注Jory博客