百度站长工具链接提交主动推送怎么用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了百度站长工具链接提交主动推送怎么用相关的知识,希望对你有一定的参考价值。
如何使用主动推送功能:
1,需要网站制作数据推送接口,进入主动推送工具后,会看到接口调用地址的token,token是由16个英文数字组合的字符串
2,下面提供一些推送示例
1)curl推送示例
将要提交的url数据写入一个本地文件,比如urls.txt,每个url占一行,然后调用curl命令:
curl -H \'Content-Type:text/plain\' --data-binary @urls.txt
"http://data.zz.baidu.com/urls?site=www.example.com&token=edk7yc4rEZP9pDQD"
使用php、python、java等可以参照这个过程推送结构化数据。
2)post推送示例
POST /urls?site=www.58.com&token=edk7ychrEZP9pDQD HTTP/1.1
User-Agent: curl/7.12.1
Host: data.zz.baidu.com
Content-Length: 83
http://www.example.com/1.html
http://www.example.com/2.html
3)php推送示例
$urls = array(
\'http://www.example.com/1.html\',
\'http://www.example.com/2.html\',
);
$api = \'http://data.zz.baidu.com/urls
site=www.58.com&token=edk7ychrEZP9pDQD\';
$ch = curl_init();
$options = array(
CURLOPT_URL => $api,
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS => implode("\\n", $urls),
CURLOPT_HTTPHEADER => array(\'Content-Type: text/plain\'),
);
curl_setopt_array($ch, $options);
$result = curl_exec($ch);
echo $result;
4)ruby推送示例
require \'net/http\'
urls = [\'http://www.example.com/1.html\', \'http://www.example.com/2.html\']
uri = URI.parse(\'http://data.zz.baidu.com/urls
site=www.xxx.com&token=eTk7ychrWZP1pDQD\')
req = Net::HTTP::Post.new(uri.request_uri)
req.body = urls.join("\\n")
req.content_type = \'text/plain\'
res = Net::HTTP.start(uri.hostname, uri.port) |http| http.request(req)
puts res.body
会代码好弄些,不会代码的话可以用主动推送的软件
每天都自动运行,无需人工,提高效率,节省成本,懒人专用品。
dedecms发布文章实自动推送百度地图
之前织梦官方推出了一个百度ping插件,不过后来没什么用了,而且百度的推送规则也改了不少,最近百度站长平台就推出了实时推送原创链接地址给百度,这样肯定比百度蜘蛛通过sitemap抓取连接要好很多了,而且还能确保网站内容的原创性。对于SEO优化能起到加快收录的效果,所以还是挺不错的。
可以说很多织梦的站长都需要这个功能,今天行者信息就根据百度站长平台的主动推送接口来写个关于织梦dedecms发布文章实时推送给百度的教程,具体操作步骤如下:
关于织梦的百度实时推送大体上可以有两种方法,大家根据需要来选择下面的两种方案中的一种
第一种方法是手动创建一个文件,我们在根目录下面创建一个dedejs.php,里面的代码如下:
require_once(“include/common.inc.php”);
require_once”include/arc.partview.class.php”;
require_once(‘include/charset.func.php’);
$year= date(“Y”);
$month= date(“m”);
$day= date(“d”);
$dayBegin= mktime(0,0,0,$month,$day,$year);//当天开始时间戳
$dayEnd= mktime(23,59,59,$month,$day,$year);//当天结束时间戳
$query= “SELECT arch.id,types.typedir FROM dede_arctype as types inner join dede_archives as arch on types.id=arch.typeid where pubdate<“.$dayEnd.” AND pubdate>”.$dayBegin.””; //这里dede换成你们自己的表前缀
$urls=””;
$dsql->Execute(‘arch.id,types.typedir’,$query);
while($row= $dsql->GetArray(‘arch.id,types.typedir’))
{
$urls.=”http://你的域名”.str_replace(“{cmspath}”,””,$row[‘typedir’]).”/”.$row [id].”.html”.”,”;
//将上边的“http://你的域名”换成你的网址
}
$urls=substr($urls,0,-1);
$urls= explode(“,”,$urls);
$api= ‘http://data.zz.baidu.com/urls?site=sxzvip.cn&token=xxxxx’; // 前边的site换成自己的 site xxx换成自己的密钥
$ch= curl_init();
$options= array(
CURLOPT_URL => $api,
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS => implode(“\n”, $urls),
CURLOPT_HTTPHEADER => array(‘Content-Type: text/plain’),
);
curl_setopt_array($ch, $options);
$result= curl_exec($ch);
echo$result.count($urls);
?>
注意里面的域名跟数据库前缀自己修改成自己的。
站长在每天发布完内容之后再访问一下这个文件就可以把当天发布的全部文章推送到百度搜索引擎。访问后会返回百度接口结果。
百度接口返回说明:
如果推送成功,状态码为200,可能返回以下字段:
代码示例:
{
“remain”:4999998,
“success”:2,
“not_same_site”:[],
“not_valid”:[]
}
如果推送失败,状态码为4xx,返回字段如下:
代码示例:
{
“error”:401,
“message”:”token is not valid”
}
这样就很清晰的反映出是否推送成功。
第二种方法是每发布完一篇文章就向百度推送一次,这种比较方便,也推荐大家用这种方法:
我们打开后台管理目录下的article_add.php文件,找到差不多第262行的地方即注释为“返回成功信息”的上面一行加入以下代码 :
- $urls=“http://www.sudujun.com".$artUrl;//前面域名换成你自己的
- $urls = explode(",",$urls);
- $api = ‘http://data.zz.baidu.com/urls?site=sxzvip.cn&token=xxxx‘; // 前边site换成自己的site xxx换成自己的密钥
- $ch = curl_init();
- $options = array(
- CURLOPT_URL => $api,
- CURLOPT_POST => true,
- CURLOPT_RETURNTRANSFER => true,
- 0CURLOPT_POSTFIELDS => implode("\n", $urls),
- CURLOPT_HTTPHEADER => array(‘Content-Type: text/plain‘),
- );
- curl_setopt_array($ch, $options);
- $result = curl_exec($ch);
注意里面的域名换成自己的
添加完成后保存即可,如果想看推送是否成功可以修改下面的提示信息,代码如下:
1请选择你的后续操作”.$result.$urls[0].”: |
这样发布文章之后就会显示如下图的提示:
以上是关于百度站长工具链接提交主动推送怎么用的主要内容,如果未能解决你的问题,请参考以下文章