利用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中的装饰器、闭包和functools的教程
Apr 02 Python
Python 私有函数的实例详解
Sep 11 Python
使用python中的in ,not in来检查元素是不是在列表中的方法
Jul 06 Python
python使用xlsxwriter实现有向无环图到Excel的转换
Dec 12 Python
python 杀死自身进程的实现方法
Jul 01 Python
pandas 时间格式转换的实现
Jul 06 Python
TensorFlow tensor的拼接实例
Jan 19 Python
Python插件机制实现详解
May 04 Python
Python如何实现远程方法调用
Aug 07 Python
python 如何利用argparse解析命令行参数
Sep 11 Python
python Selenium 库的使用技巧
Oct 16 Python
Pytorch 图像变换函数集合小结
Feb 01 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
理解PHP5中static和const关键字的区别
2007/03/19 PHP
PHP单链表的实现代码
2016/07/05 PHP
PHP入门教程之字符串处理技巧总结(转换,过滤,解析,查找,截取,替换等)
2016/09/11 PHP
php Session无效分析资料整理
2016/11/29 PHP
js实现收缩菜单效果实例代码
2013/10/30 Javascript
js 判断文件类型并控制表单提交示例代码
2013/11/14 Javascript
jqGrid读取选择的多行的某个属性代码
2014/05/18 Javascript
js中window.open打开一个新的页面
2014/08/10 Javascript
JavaScript中的bold()方法使用详解
2015/06/08 Javascript
jquery实现两个图片渐变切换效果的方法
2015/06/25 Javascript
jQuery鼠标经过方形图片切换成圆边效果代码分享
2015/08/20 Javascript
JS实现的简洁纵向滑动菜单(滑动门)效果
2015/10/19 Javascript
《JavaScript高级编程》学习笔记之object和array引用类型
2015/11/01 Javascript
深入理解JavaScript 函数
2016/06/06 Javascript
基于jquery插件编写countdown计时器
2016/06/12 Javascript
第一次接触神奇的Bootstrap基础排版
2016/07/26 Javascript
layui table 获取分页 limit的方法
2019/09/20 Javascript
[02:26]2016国际邀请赛8月3日开战 中国军团出征西雅图
2016/08/02 DOTA
python将文本转换成图片输出的方法
2015/04/28 Python
python中redis的安装和使用
2016/12/04 Python
Python爬虫DOTA排行榜爬取实例(分享)
2017/06/13 Python
Python使用filetype精确判断文件类型
2017/07/02 Python
NetworkX之Prim算法(实例讲解)
2017/12/22 Python
详解Python:面向对象编程
2019/04/10 Python
python 实现检验33品种数据是否是正态分布
2019/12/09 Python
Python实现GIF图倒放
2020/07/16 Python
CheapTickets泰国:廉价航班,查看促销价格并预订机票
2019/12/28 全球购物
北京鼎普科技股份有限公司软件测试面试题
2012/04/07 面试题
机械绘图员岗位职责
2013/11/19 职场文书
自荐信的基本格式
2014/02/22 职场文书
销售顾问岗位职责
2014/02/25 职场文书
乡镇2014法制宣传日活动总结
2014/11/01 职场文书
2015年秋季开学典礼校长致辞
2015/07/16 职场文书
经典哲理警句:志不真则心不热,心不热则功不贤
2019/11/14 职场文书
Python连续赋值需要注意的一些问题
2021/06/03 Python
python创建字典及相关管理操作
2022/04/13 Python