- A+
《百度星火计划原创规范v2.0》
百度星火计划所服务的原创内容,需要遵守星火计划原创规范,按照规范要求在原创内容中进行标识,同时使用百度站长平台提供的链接提交-主动推送方式进行提交。
一、原创规范
针对网站产生的原创内容,无论PC站还是移动站,需要站长在页面文本中包含以下内容:发布时间、作者及来源(或出处)。我们不对该内容的摆放位置做严格要求,但建议放置在文章标题下方。同时,需要在页面HTML源代码中使用meta标签来标注。
【星火计划可支持以下类型】
文章:<metaproperty="og:type" content="article"/>
新闻:<meta property="og:type"content="news"/>
社区,如论坛、跟帖、问题社区:<metaproperty="og:type" content="bbs"/>
博客,用户专栏:<meta property="og:type"content="blog"/>
文学作品,如小说:<meta property="og:type"content="novel"/>
文档,如技术文章、翻译文档:<metaproperty="og:type" content="document"/>
同一个站点根据内容不同可以使用多个类型,比如知乎的用户答案页面可以使用content=bbs,用户专栏页面可以使用content=blog
【星火计划中原创规范关注的三点内容】
发布时间:指文章的第一发表时间,即系统将文章发布到全网可见状态的时间,而不是文章更新时间,此时间需要至少精确至分钟级
作者:指文章内容的实际创作者,可以使用真名或笔名,允许作者为多人,需要以空格间隔
来源(或出处):指发布原创内容的站点名称,同时站点名称需要链接到当前原创内容页URL
在HEAD中加入META标签,以文章类型举例,格式如下:
<meta property="og:type" content="article" />
<meta property="article:published_time" content="YYYY-MM-DDTHH:MM:SS+时区"/>
<meta property="article:author" content="作者姓名"/>
<meta property="article:published_first" content="原发媒体名称, 原发网页URL" />
以百度站长学院文章《站点切换https不会对流量产生负面影响》为例,站长需要添加的代码如下(每一行下面的斜体字部分是解释):
<meta property="og:type" content="article"/>
-该字段是固定且必选的,表明当前页面类型符合OG协议中的文章作品类型
<meta property="article:published_time" content="2015-12-16T17:47:53+08:00" />
-最早发布时间,该字段必选,可以不在页面中做展示,内容格式要求符合ISO8601规范的UTC格式,标准格式应当是“YYYY-MM-DDTHH:MM:SS+时区”
<meta property="article:author" content="百度站长平台" />
-作者署名字段必选,需要在页面做展示
*如果该文章由多个作者共同完成,可再加一行作者署名代码:<meta property="article:author" content="百度站长学院"/>
<meta property="article:published_first" content="百度站长平台, http://zhanzhang.baidu.com/college/articleinfo?id=744" />
-原发媒体名称和链接,用于区分原创和转载,该字段为可选。原创时,链接与自身相同;转载时,链接是另外不同的地址
二、原创推送
为保证原创内容能够第一时间被百度发现,网站需要将原创内容页面在发布后第一时间使用百度站长平台提供的链接提交-主动推送方式进行提交。
步骤引导:
1、已在百度站长平台http://zhanzhang.baidu.com验证站点;
2、进入百度站长平台,登录账号;
3、点击 工具——链接提交——自动提交——主动推送;
4、看到如下的数据格式信息,以及推送方法,如下图:
5、请注意提交地址是:http://data.zz.baidu.com/urls?site=www.xxx.com&token=xxx&type=original,其中site和token参数随站点和账号不同而不同,请关注实际页面内容;同时,如果是原创内容,一定要记得在后面加type字段标示,否则,不用带type参数。
6、在第二部分的推送示例中给出了curl、php、post和ruby的实现方式,也可用其他语言实现。
7、推送的文件内容必须是每行一个url的格式。
8、推送返回码为200,说明文件接收成功,返回的各个字段的说明详见帮助文档,其他错误码为4xx,并且返回具体的错误信息。
【推送示例】
有本地文件urls.txt,内容如下:
www.example.com/1.html
www.example.com/2.html
www.example.com/3.html
www.example.com/4.html
推送方法1:
curl推送示例:
将要提交的链接按照每行一条的格式写入一个文本文件中,命名此文件为urls.txt, 然后进入该文件所在目录,执行如下命令:
curl -H'Content-Type:text/plain' --data-binary @urls.txt"http://data.zz.baidu.com/urls?site=www.xxx.com&token=xxx&type=original"
使用php、python、java等可以参照这个过程推送结构化数据。
推送方法2:
post推送示例:
POST/urls?site=www.sina.com.cn&token=ozrH9Eg8DmmDDyLd&type=originalHTTP/1.1
User-Agent:curl/7.12.1
Host:data.zz.baidu.com
Content-Type:text/plain
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.xxx.com&token=xxx&type=original';
$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=ozrH9Eg8DmmDDyLd&type=original')
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