美文网首页程序员
Hexo站点主动推送百度-基于Flow.ci

Hexo站点主动推送百度-基于Flow.ci

作者: 小矮人Ethan | 来源:发表于2016-12-19 17:14 被阅读593次

写在前面:

下面是链接提交方式的对比:

如何选择链接提交方式
1、主动推送:最为快速的提交方式,推荐您将站点当天新产出链接立即通过此方式推送给百度,以保证新链接可以及时被百度收录。
2、自动推送:最为便捷的提交方式,请将自动推送的JS代码部署在站点的每一个页面源代码中,部署代码的页面在每次被浏览时,链接会被自动推送给百度。可以与主动推送配合使用。
3、sitemap:您可以定期将网站链接放到sitemap中,然后将sitemap提交给百度。百度会周期性的抓取检查您提交的sitemap,对其中的链接进行处理,但收录速度慢于主动推送。
4、手动提交:一次性提交链接给百度,可以使用此种方式。
来自百度站长>>

原创文章,转发请注明!

访问接口实现主动提交

使用Post请求,通过配置site和token将包含你需要提交的链接的数组提交到百度提供的接口!
示例代码(这里实现了php的和python的):

php:

说明:此方法适合能够自动构建sitemap的情况,未设置的请移步>>
自动构建>>
只要保证你的博客根目录的sitemap.xml和baidusitemap.xml能够访问就好!
如未实现自动构建sitemap,需要本地手动生成之后添加到source文件夹下!不过每次添加新文章都需要从新上传!
将下面脚本保存成baidusitemapPush.php(名字随便起,注意跟后面对应就好!)

<?php

//从博客根目录加载百度站点地图
$xmlfile = './baidusitemap.xml';

//解析站点地图,并将所有站点链接存入数组$locs
$xml = simplexml_load_file($xmlfile);
$locs = [];
foreach ($xml->url as $child) {
  array_push($locs,$child->loc->__toString());
}

//调用百度主动推送接口,将baidusitemap.xml中所有的站点链接提交
//site和token请换成你自己的
$api = 'http://data.zz.baidu.com/urls?site=www.yoursite.com&token=yourtoken';
$ch = curl_init();
$options =  array(
    CURLOPT_URL => $api,
    CURLOPT_POST => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POSTFIELDS => implode("\n", $locs),
    CURLOPT_HTTPHEADER => array('Content-Type: text/plain'),
);
curl_setopt_array($ch, $options);
$result = curl_exec($ch);
//echo $result;
print_r($result);

?>

python:

python请轻喷啊,写得很low!如果使用python的请严格复制下面代码,否则你就需要一把游标卡尺~~~
保存成baidusitemapPush.py文件

# !/usr/bin/python
# -*- coding: UTF-8 -*-


import requests
from xml.dom.minidom import parse
import xml.dom.minidom

# 加载xml文件
DOMTree = xml.dom.minidom.parse("./baidusitemap.xml")
data0 = DOMTree.getElementsByTagName("loc")
list_len = len(data0)
payload = []
data2 = []

# 遍历xml文件,得到所有站点链接
for i in range(0, list_len, 1):
    data1 = data0[i].firstChild.data
    data2.append(data1)

payload = str(data2)
url = "http://data.zz.baidu.com/urls"
querystring = {"site":"www.oneonecity.xyz","token":"yourtoken"}
headers = {
    'content-type': "text/plain",
    'cache-control': "no-cache",
    }

# 请求百度主动推送接口
response = requests.request("POST", url, data=payload, headers=headers, params=querystring)
print(response.text)

上传脚本:

将上面的php或者python脚本上传一个就好,放在hexo-->source文件夹下面;然后上传!

git add .

git commit -am "添加百度主动推送脚本"

git push origin master

配置flow.ci

说明:

flow的地址>>
可以参考这里>>
这里配置自动构建的flow项目需要绑定你的博客对应的仓库,而非源码仓库;
配置环境选择php或者python,这取决于你之前上传的那个脚本!

百度主动推送
自定义脚本:
flow_cmd "php baidusitemapPush.php" --echo --assert
flow_cmd "php sitemapPush.php" --echo --assert
flow_cmd "php baiduPush_index.php" --echo --assert
flow_result $?

检测构建:

push一下博客或者手动更新博客仓库的文件,触发自动构建,理想情况下是这样子:


百度主动推送

这样子以后每次更新文章都会触发一次主动推送!

任何问题,欢迎交流!

相关文章

  • Hexo站点主动推送百度-基于Flow.ci

    写在前面: 下面是链接提交方式的对比: 如何选择链接提交方式1、主动推送:最为快速的提交方式,推荐您将站点当天新产...

  • hexo之高级美化篇

    参考原文地址:hexo建站记 主动推送到百度 参考Hexo插件之百度主动提交链接安装hexo-baidu-url-...

  • Hexo博客SEO优化

    主动给百度提交链接 之前的博文Hexo博客主动提交链接给百度提到了怎样主动得给百度提交链接和制作站点地图sitem...

  • Hexo博客主动提交链接给百度

    登录百度站长查看站点 可以看到百度链接提交有三种方式。 主动推送 首选推荐是主动推送,最高效最快速的收录方式。如果...

  • 百度SEO核心技术——主动提交sitemap

    如何选择链接提交方式 主动推送:最为快速的提交方式,建议您将站点当天新产出链接立即通过此方式推送给百度,以保证新链...

  • about me

    在校大学生用博客记录自己成长过程站点基于Hexo Github | 简书

  • Hexo 添加标签云

    截图出自 https://ruofei.site/,访问该站点可查看效果(在侧边栏下方)。标签云效果基于 Hexo...

  • Hexo自动构建-基于Flow.ci和Coding

    写在前面 昨天完成了基于Github和TravisCI的自动构建,但是国内访问这两个站速度还是会差一些的,现在国内...

  • 如何给网站加入百度主动推送?

    百度主动推送可以让百度搜索引擎提前发现内容,起到加快收录的作用,那么如何给如何给网站加入百度主动推送呢。 操作步骤...

  • Hexo——常用命令

    (1)$ hexo g或$ hexo generate该命令执行后在hexo站点根目录下生成public文件夹 (...

网友评论

    本文标题:Hexo站点主动推送百度-基于Flow.ci

    本文链接:https://www.haomeiwen.com/subject/qymtvttx.html