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

写在前面:

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

如何选择链接提交方式

1、主动推送:最为快速的提交方式,推荐您将站点当天新产出链接立即通过此方式推送给百度,以保证新链接可以及时被百度收录。

2、自动推送:最为便捷的提交方式,请将自动推送的JS代码部署在站点的每一个页面源代码中,部署代码的页面在每次被浏览时,链接会被自动推送给百度。可以与主动推送配合使用。

3、sitemap:您可以定期将网站链接放到sitemap中,然后将sitemap提交给百度。百度会周期性的抓取检查您提交的sitemap,对其中的链接进行处理,但收录速度慢于主动推送。

4、手动提交:一次性提交链接给百度,可以使用此种方式。

来自百度站长>>

原创文章,转发请注明!

访问接口实现主动提交

使用Post请求,通过配置site和token将包含你需要提交的链接的数组提交到百度提供的接口!

示例代码(这里实现了php的和python的):

php:

说明:此方法适合能够自动构建sitemap的情况,未设置的请移步>>

自动构建>>

只要保证你的博客根目录的sitemap.xml和baidusitemap.xml能够访问就好!

如未实现自动构建sitemap,需要本地手动生成之后添加到source文件夹下!不过每次添加新文章都需要从新上传!

将下面脚本保存成baidusitemapPush.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,这取决于你之前上传的那个脚本!

be8ecf6ed691

百度主动推送

自定义脚本:

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一下博客或者手动更新博客仓库的文件,触发自动构建,理想情况下是这样子:

be8ecf6ed691

百度主动推送

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

任何问题,欢迎交流!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值