利用Python脚本实现ping百度和google的方法


Posted in Python onJanuary 24, 2017

Ping服务

ping 是基于 XML_RPC 标准协议的更新通告服务,用于Blog把内容更新快速通知给搜索引擎,以便搜索引擎及时进行抓取和更新。

计算机就相当于 RPC Client ,用于向 RPC Server 发起请求,并接受方法的执行结果。

Python实现方法

Python 内置了 XMLRPClib ,可以很方便地处理XMLRPC协议,免去了封包解包的麻烦。

用法很简单,首先导入库:

import xmlrpclib

生成xmlrpc服务器对象:

sever = xmlrpclib.ServerProxy(ServerProxy)

其中 ServerProxy 是搜索引擎的RPC服务器端点地址。

然后便可以执行RPC服务器的方法了,以百度为例:

result = server.weblogUpdates.extendedPing(blog_name,index_addr,new_post_addr,rss_addr)

weblogUpdates.extendedPing 是需要执行的方法,其中括号中的四个参数是 百度ping服务页面 上所要求的。 result 是方法返回的执行结果。

封装代码

ping_all函数里放上需要ping的链接就可以了,参数按照需求传。

#!/usr/bin/env python
# -*- coding:utf-8 -*-

import json
import xmlrpclib
from db import redis


def ping(ping_url, *args, **kwds):
 """args: site_name, site_host, post_url, rss_url."""
 rpc_server = xmlrpclib.ServerProxy(ping_url)
 result = rpc_server.weblogUpdates.extendedPing(*args)
 print result


def ping_all(*args, **kwds):
 ping_url_list = [
 'http://ping.baidu.com/ping/RPC2',
 'http://rpc.pingomatic.com/',
 'http://blogsearch.google.com/ping/RPC2',
 ]
 for url in ping_url_list:
 ping(url, *args, **kwds)


def main():
 client = redis.pubsub()
 client.subscribe(['ping'])
 while True:
 for item in client.listen():
  if item['type'] == 'message':
  msg = item['data']
  if msg:
   post = json.loads(msg)
   print post
   ping_all(post.get('site_name'), post.get('site_host'),
    post.get('post_url'), post.get('rss_url'))


def test():
 site_name = "tech2ipo"
 site_host = "http://alpha.tech2ipo.com"
 post_url = 'http://alpha.tech2ipo.com/100855'
 rss_url = "http://alpha.tech2ipo.com/rss/alpha.tech2ipo.com"
 ping_all(site_name, site_host, post_url, rss_url)


if __name__ == '__main__':
 main()

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家学习或者使用python能带来一定的帮助,如果有疑问大家可以留言交流。

Python 相关文章推荐
使用python获取CPU和内存信息的思路与实现(linux系统)
Jan 03 Python
使用python删除nginx缓存文件示例(python文件操作)
Mar 26 Python
跟老齐学Python之Python安装
Sep 12 Python
启动targetcli时遇到错误解决办法
Oct 26 Python
python微信公众号之关键词自动回复
Jun 15 Python
Django自带日志 settings.py文件配置方法
Aug 30 Python
学习Django知识点分享
Sep 11 Python
Python爬虫之Spider类用法简单介绍
Aug 04 Python
python打包多类型文件的操作方法
Sep 21 Python
pymysql模块使用简介与示例
Nov 17 Python
Python 实现RSA加解密文本文件
Dec 30 Python
python游戏开发Pygame框架
Apr 22 Python
解决python2.7用pip安装包时出现错误的问题
Jan 23 #Python
浅谈终端直接执行py文件,不需要python命令
Jan 23 #Python
在Linux命令行终端中使用python的简单方法(推荐)
Jan 23 #Python
Python 详解基本语法_函数_返回值
Jan 22 #Python
Python 数据结构之队列的实现
Jan 22 #Python
Python 数据结构之堆栈实例代码
Jan 22 #Python
Python 常用 PEP8 编码规范详解
Jan 22 #Python
You might like
一个简单的域名注册情况查询程序
2006/10/09 PHP
使PHP自定义函数返回多个值
2006/11/26 PHP
PHP base64+gzinflate压缩编码和解码代码
2008/10/03 PHP
php页码形式分页函数支持静态化地址及ajax分页
2014/03/28 PHP
PHP中使用imagick实现把PDF转成图片
2015/01/26 PHP
PHP explode()函数的几个应用和implode()函数有什么区别
2015/11/05 PHP
Yii2前后台分离及migrate使用(七)
2016/05/04 PHP
PHP面向对象五大原则之单一职责原则(SRP)详解
2018/04/04 PHP
PHP 爬取网页的主要方法
2018/07/13 PHP
thinkPHP5框架闭包函数与子查询传参用法示例
2018/08/02 PHP
php写入文件不覆盖的实例讲解
2019/09/17 PHP
javascript学习笔记(八) js内置对象
2012/06/19 Javascript
有关javascript的性能优化 (repaint和reflow)
2013/04/12 Javascript
JavaScript函数节流概念与用法实例详解
2016/06/20 Javascript
JS实用的带停顿的逐行文本循环滚动效果实例
2016/11/23 Javascript
微信小程序开发之麦克风动画 帧动画 放大 淡出
2017/04/18 Javascript
js前端实现图片懒加载(lazyload)的两种方式
2017/04/24 Javascript
微信小程序实现收藏与取消收藏切换图片功能
2018/08/03 Javascript
原生js实现弹窗消息动画
2020/11/20 Javascript
Python使用PyGreSQL操作PostgreSQL数据库教程
2014/07/30 Python
浅谈Python实现贪心算法与活动安排问题
2017/12/19 Python
python使用tkinter库实现五子棋游戏
2019/06/18 Python
详解程序意外中断自动重启shell脚本(以Python为例)
2019/07/26 Python
周仰杰(JIMMY CHOO)英国官方网站:闻名世界的鞋子品牌
2018/10/28 全球购物
What is the purpose of Void class? Void类的作用是什么?
2016/10/31 面试题
木工主管岗位职责
2013/12/08 职场文书
优良学风班总结材料
2014/02/08 职场文书
《美丽的小路》教学反思
2014/02/26 职场文书
2014年小学植树节活动方案
2014/03/02 职场文书
2014年两会学习心得体会
2014/03/17 职场文书
经贸专业毕业生求职信
2014/03/23 职场文书
捐助贫困学生倡议书
2014/05/16 职场文书
机械加工与数控专业自荐书
2014/06/04 职场文书
消防标语大全
2014/06/07 职场文书
2014年个人工作总结范文
2014/11/07 职场文书
JS中一些高效的魔法运算符总结
2021/05/06 Javascript