关闭

给你的WordPress实现利用自动Ping将文章实时推送到百度

1417人阅读 评论(0) 收藏 举报
分类:

Ping服务,也称更新通知服务,是搜索引擎发现网友博客更新的一种方式。使搜索引擎能更快,更全面地收录博客文章。搜索引擎在收到Ping后会在最短时间内对相应博客进行抓取。如何加速搜索引擎快速收录的技巧,ping服务是加速网站收录的重要工具,如何加速网页的收录本文从手动加速收录、使用自动ping服务和使用网站三个方面加速网站的收录。

本文根据百度站长平台官方文档代码实现百度Ping服务,是基于XML_RPC标准协议的更新通告服务,用于博客把内容更新快速通知给百度,以便百度及时进行抓取和更新。

给你的WordPress实现利用自动Ping将文章实时推送到百度 - 技术文摘 | 玩赚乐

Ping服务使用方法:

你可以采取手动通知和自动通知两种方式使用ping服务(百度官方):

  • 手动ping:访问http://ping.baidu.com/ping.html页面,在输入框中输入博客地址或者feed地址,点击“提交博客”按钮即可。
  • 自动ping:如果您的博客程序支持自动ping功能,您只需把百度的Ping服务地址配置到你的Blog发布后台或者客户端程序中,就可以实现自动通知的功能。百度ping服务的地址为:http://ping.baidu.com/ping/RPC2

自动Ping的XML_RPC:

发送给百度Ping服务的XML-RPC客户请求需要包含如下元素:
RPC端点: http://ping.baidu.com/ping/RPC2
调用方法名: weblogUpdates.extendedPing
参数: (应按照如下所列的相同顺序传送)

  • 博客名称
  • 博客首页地址
  • 新发文章地址
  • 博客rss地址

PHP代码实现百度Ping服务:

  1. /**
  2. * 根据百度站长平台提供的API实现百度ping服务
  3. * from http://www.banghui.org
  4. */
  5. class ping{
  6. private $title; //博客名称
  7. private $hosturl; //博客首页地址
  8. private $arturl; //新发文章地址
  9. private $rssurl; //博客rss地址
  10. private $baiduXML; //百度XML结构
  11. private $baiduRPC; //百度XML地址
  12. public function __construct($title,$arturl,$hosturl,$rssurl)
  13. {
  14. if(empty($title) || empty($arturl))
  15. return false;
  16. $this->title=$title;
  17. $this->hosturl=$hosturl;
  18. $this->rssurl=$rssurl;
  19. $this->arturl=$arturl;
  20. $this->baiduRPC='http://ping.baidu.com/ping/RPC2';
  21. $this->baiduXML = '<?xml version="1.0" encoding="UTF-8"?>';
  22. $this->baiduXML .='<methodCall>';
  23. $this->baiduXML .=' <methodName>weblogUpdates.extendedPing</methodName>';
  24. $this->baiduXML .=' <params>';
  25. $this->baiduXML .=' <param><value><string>'.$this->hosturl.'</string></value></param>';
  26. $this->baiduXML .=' <param><value><string>'.$this->title.'</string></value></param>';
  27. $this->baiduXML .=' <param><value><string>'.$this->arturl.'</string></value></param>';
  28. $this->baiduXML .=' <param><value><string>'.$this->rssurl.'</string></value></param>';
  29. $this->baiduXML .=' </params>';
  30. $this->baiduXML .='</methodCall>';
  31. }
  32. public function pingbaidu()
  33. {
  34. $ch = curl_init();
  35. $headers=array(
  36. 'User-Agent: request',
  37. 'Host: ping.baidu.com',
  38. 'Content-Type: text/xml',
  39. );
  40. curl_setopt($ch, CURLOPT_URL, $this->baiduRPC);
  41. curl_setopt($ch, CURLOPT_HEADER, 1);
  42. curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
  43. curl_setopt($ch, CURLOPT_POST, 1);
  44. curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
  45. curl_setopt($ch, CURLOPT_POSTFIELDS, $this->baiduXML);
  46. $res = curl_exec ($ch);
  47. curl_close ($ch);
  48. //return $res;
  49. /**
  50. * ping-service响应举例: 
  51. * ping-service对非POST方法请求返回HTTP_METHOD_NOT_ALLOWED(405)错误代码
  52. * 对超大错误包返回HTTP_REQUEST_ENTITY_TOO_LARGE(413)错误代码
  53. * 对非“text/xml”请求包返回HTTP_UNSUPPORTED_MEDIA_TYPE(415)错误代码
  54. * 其他情况返回HTTP_OK(200)代码
  55. * xml-rpc响应http包体为一个xml文档,含有一个int值,0表示推送成功,其他值表示推送失败,目前只有0和1。
  56. */
  57. return (strpos($res,"<int>0</int>"))?true:false;
  58. }
  59. }
  60.  
  61. //调用方式:
  62. //$arc = new Ping('网站标题','更新的URL地址','网站域名','rss地址');
  63. $arc = new Ping('csdn','http://www.csdn.net/4377.html','http://www.csdn.net','http://www.csdn.net/feed');
  64. //返回结果为true 表示成功。
  65. echo $arc->pingbaidu();

一般来说通过自己去百度ping之后,百度爬虫会在10分钟左右到达你的网站,但是你的网站内容是否符合百度要求,这个是要看百度的。是否收录,和收录情况这个主要看的你文章内容,所以大家还是安安心心好好做原创文章才是王道

0
0

猜你在找
【套餐】Hadoop生态系统零基础入门
【套餐】嵌入式Linux C编程基础
【套餐】2017软考系统集成项目——任铄
【套餐】Android 5.x顶级视频课程——李宁
【套餐】深度学习入门视频课程——唐宇迪
【直播】广义线性模型及其应用——李科
【直播】从0到1 区块链的概念到实践
【直播】计算机视觉原理及实战——屈教授
【直播】机器学习之凸优化——马博士
【直播】机器学习&数据挖掘7周实训--韦玮
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:89786次
    • 积分:1241
    • 等级:
    • 排名:千里之外
    • 原创:26篇
    • 转载:44篇
    • 译文:1篇
    • 评论:13条
    最新评论