适用于CakePHP 3.0+的百度PING组件 Components

代码精灵
• 阅读 2586

什么是Baidu Ping 服务

ping是基于XML_RPC标准协议的更新通告服务,用于博客把内容更新快速通知给百度,以便百度及时进行抓取和更新。
简而言之,就是网站新增文章后,可以自动把新文章地址立刻通知百度来收录,是网站SEO优化,原创防止复制的神器。
我用CakePHP 3.0+ 写了一个这样一个Baidu Ping 的小部件,简单,但很有用。

phpCakePHP 3.0+ BaiduPing Components:
<?php
/**
 * 适用于CakePHP 3.0+ 的百度PING部件。了解百度PING http://zhanzhang.baidu.com/tools/ping
 * 网站发布文章成功后,调用此部件,及时通知百度收录。是每个网站必备工具。
 * 使用方法:
 * Controller:
 * $this->Baidu = $this->loadComponents('Baidu');
 * if($this->Baidu->ping(['posturl'=>'文章地址'])){
 *      百度返回收到新文章地址成功
 * }
 * @author  macnie
 * @link http://www.macnie.com 会保持更新
 */
namespace App\Controller\Component;

use Cake\Controller\Component;
use Cake\Utility\Xml;
use Cake\Network\Http\Client;
class BaiduComponent extends Component
{

    /**
     * 把SITE_NAME,SITE_URL换成你自己的即可
     * @param 必须传递 $prams['posturl'] $params 
     * @return bool
     */
public function ping($params = []){
$url = 'http://ping.baidu.com/ping/RPC2';
        $default = [
            'sitename'=>SITE_NAME,
            'siteurl'=>SITE_URL,
            'posturl'=>'', //此项必传递,否则返回ping失败
            'rss'=>SITE_URL.'/rss',
        ];
        $options = array_merge($default,$params);// 组装数据包
        $array = [
                'methodCall'=>[
                        'methodName'=>'weblogUpdates.extendedPing',
                        'params'=>[
                                'param'=>[
                                        [
                                            'value'=>['string'=>$options['sitename'],]
                                        ],
                                        [
                                                'value'=>[
                                                                'string'=>$options['siteurl'],
                                                ]   
                                        ],
                                        [
                                                'value'=>[
                                                                'string'=>$options['posturl'],
                                                ]
                                        ],
                                        [
                                                'value'=>[
                                                                'string'=>$options['rss'],
                                               ]      
                                       ]
                                ]
                       ]
                ]
        ];
        $xml = Xml::fromArray($array);
        $xml = $xml->asXML();//创建XML
        $HttpSocket  = new Client();
        $res = $HttpSocket->post($url,$xml);// 向百度发送ping的POST请求
        $this->log($res);
        $xmlArray = Xml::toArray(Xml::build($res->body()));//把百度返回值处理成数组
        return !$xmlArray['methodResponse']['params']['param']['value']['int'];// 处理接受值。返回1:失败;0:成功。百度这个设定很别扭
    }
}
点赞
收藏
评论区
推荐文章
samzhangjy samzhangjy
4年前
BaiduSpider:一个爬取百度的利器
BaiduSpider是一款基于Python的百度搜索结果爬虫,支持多种搜索结果。这篇文章将从多个方面介绍BaiduSpider。什么是BaiduSpider?BaiduSpider是一款强大但轻量的百度搜索结果提取器,基于BeautifulSoup4和requests。它支持多种搜索结果,包括百度网页搜索,百度图片搜索,百度知道搜索,百度视频搜索,百度资
冴羽 冴羽
3年前
VuePress 博客优化之添加数据统计功能
前言在中,我们使用VuePress搭建了一个博客,最终的效果点击查看:。今天我们给博客添加数据统计功能。1.百度统计1.1创建站点1.1.1登陆站点登陆百度统计后台:1.1.2新增网站在「管理」「网站列表」中,点击「新增网站」:1.1.3填写信息添加网站域名、网站首页等信息:1.1.4获取代码添加完后,会自动跳转到代码获
冴羽 冴羽
3年前
VuePress 博客之 SEO 优化(六)站长工具
前言在中,我们使用VuePress搭建了一个博客,最终的效果查看:。本篇接着讲讲SEO优化会用到的站长平台和工具等。1.百度统计地址:网站流量分析工具,能够告诉用户访客是如何找到并浏览用户的网站,在网站上做了些什么2.百度搜索资源平台地址:在添加站点后,可以看到自己站点在百度搜索结果中的一些表现:百度搜索中心也提供了一些教程如:1.《平
3A网络 3A网络
2年前
网站优化(一)—— 从何处着手开启网站优化?
网站优化(一)——从何处着手开启网站优化?网站优化是指使用工具、高级策略和实验来提高网站性能,从而推动流量增加转化率和增加收入的过程。搜索引擎优化(SEO)是常见的一种网站优化方式,它可以帮助网站的各个页面在特定关键字的SERP(搜索引擎结果页面)中排名靠前,让用户在百度、谷歌等搜索时先看到你的网站。如果想要进一步优化网站,让用户体验更好,那是一个很
Wesley13 Wesley13
3年前
SEO容易遇到这些问题 老铁SEO助你一臂之力
SEO目前已经成为各大站长必备工作,利用SEO为企业获得排名,可以增加公司盈利,达到不错的营销效果;反之,百度会对网站造成不信任,从而没办法通过搜索引擎把网站呈现给众多用户。很多人在做网站SEO工作时,往往会忽视一些错误,这些错误恰好给网站优化带来负面效果。!(http://5b0988e595225.cdn.sohucs.com/images/20
Karen110 Karen110
4年前
有读者问我怎么爬App,我手把手教了他(多图警告)
前言大家好,我是Kuls。最近看见很多读者在说怎么抓取APP上的内容为此,我打算写一些关于爬取APP方面的文章,当然APP的爬取自然是要比网页要麻烦。但是只要我们把前期的工作做好,后面也会更加的顺利。今天这篇文章就是来教大家如何抓取到APP数据,用什么软件,怎么配置?Charles首先,我们来看看百度百科是怎么介绍这款软件的是一个HTTP代理服务器,HTT
Wesley13 Wesley13
3年前
Java生成sitemap网站地图
sitemap是什么?对应没有接触过网站SEO的同学可能不知道,这里引用一下百度站长的一段解释。Sitemap(即站点地图)就是您网站上各网页的列表。创建并提交Sitemap有助于百度发现并了解您网站上的所有网页。您还可以使用Sitemap提供有关您网站的其他信息,如上次更新日期、Sitemap文件的更新频率等,供百度Spider参考简单来
Wesley13 Wesley13
3年前
Android之基于百度云推送IM
偶然的一天,发现百度出了一个云推送包,想想百度的服务器还是比较靠谱的说,怎么着也比我们自己搭建的服务器要稳定,于是乎,我就花了几天时间,写了一个小小的聊天工具,权当是练手。主要思路是:客户端的聊天内容通过json格式封装(包含聊天内容、发送人信息)之后,HTTP请求百度服务器,即请求把该消息发送到指定id的用户,请求成功之后,百度服务器就把我们的信息转发给指
Stella981 Stella981
3年前
Nginx优化防爬虫 限制http请求方法 CDN网页加速 架构优化 监牢模式 控制并发量以及客户端请求速率
Nginx防爬虫优化Robots协议(也称为爬虫协议,机器人协议等)的全称是“网络爬虫排除标准”(RobotsExclusionProtocol),网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。我理解的是robots.txt是通过代码控制搜索引擎蜘蛛索引的一个手段,以便减轻网站服务器的带宽使用率,从
燕青 燕青
1年前
Screaming Frog SEO Spider Mac版 附 注册码 及完整安装教程 支持M1
是一款用于网站爬取和SEO诊断的工具,可以帮助用户分析和优化网站的搜索引擎优化(SEO)性能。以下是ScreamingFrogSEOSpider的一些主要特点和功能:网站爬取:ScreamingFrogSEOSpider可以快速爬取网站的内容,包括页面标题
燕青 燕青
1年前
web网页死链接检查工具:Scrutiny for Mac 支持M1/M2
是一款适用于Mac操作系统的网站链接检查工具,它可以帮助用户识别和解决网站中存在的各种问题,包括链接错误、页面重定向、缺失的图像和资源、死链接等等。Scrutiny可以扫描整个网站,并提供详细的报告,以便用户快速发现并修复问题。该软件还支持对SEO优化进行