利用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绘制数据的瀑布图的教程
Apr 07 Python
python获取当前日期和时间的方法
Apr 30 Python
详解Django框架中用户的登录和退出的实现
Jul 23 Python
Python实现SQL注入检测插件实例代码
Feb 02 Python
python mysql断开重连的实现方法
Jul 26 Python
Python matplotlib生成图片背景透明的示例代码
Aug 30 Python
Python序列对象与String类型内置方法详解
Oct 22 Python
python将邻接矩阵输出成图的实现
Nov 21 Python
基于h5py的使用及数据封装代码
Dec 26 Python
Python之Django自动实现html代码(下拉框,数据选择)
Mar 13 Python
keras读取训练好的模型参数并把参数赋值给其它模型详解
Jun 15 Python
python退出循环的方法
Jun 18 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
用PHP产生动态的影像图
2006/10/09 PHP
PHP静态调用非静态方法的应用分析
2013/05/02 PHP
php实现兼容2038年后Unix时间戳转换函数
2015/03/18 PHP
php替换字符串中间字符为省略号的方法
2015/05/04 PHP
PHP微信开发之查询微信精选文章
2016/06/23 PHP
js实现运行代码需要刷新的解决方法
2007/08/18 Javascript
JS request函数 用来获取url参数
2010/05/17 Javascript
超级24小时弹窗代码 24小时退出弹窗代码 100%弹窗代码(IE only)
2010/06/11 Javascript
用dtree实现树形菜单 dtree使用说明
2011/10/17 Javascript
node.js实现多图片上传实例
2014/06/03 Javascript
javascript中replace( )方法的使用
2015/04/24 Javascript
JavaScript基本语法讲解
2015/06/03 Javascript
JQuery EasyUI Layout 在from布局自适应窗口大小的实现方法
2016/05/28 Javascript
jQuery实现图片轮播效果代码(基于jquery.pack.js插件)
2016/06/02 Javascript
浅析BootStrap Treeview的简单使用
2016/10/12 Javascript
JS中mouseup事件丢失的原因与解决办法
2017/06/14 Javascript
Vue组件选项props实例详解
2017/08/18 Javascript
基于jQuery实现的单行公告活动轮播效果
2017/08/23 jQuery
Angular 4.x+Ionic3踩坑之Ionic 3.x界面传值详解
2018/03/13 Javascript
基于Vue的延迟加载插件vue-view-lazy
2018/05/21 Javascript
解决vue axios跨域 Request Method: OPTIONS问题(预检请求)
2020/08/14 Javascript
python使用urllib模块开发的多线程豆瓣小站mp3下载器
2014/01/16 Python
python分割文件的常用方法
2014/11/01 Python
matplotlib设置legend图例代码示例
2017/12/19 Python
浅谈Matplotlib简介和pyplot的简单使用——文本标注和箭头
2018/01/09 Python
5分钟弄清楚html5的drag and drop(小结)
2019/04/10 HTML / CSS
HTML5 Video/Audio播放本地文件示例介绍
2013/11/18 HTML / CSS
谈一谈HTML5本地存储技术
2016/03/02 HTML / CSS
新西兰最大的品牌运动鞋购物网站:Platypus NZ
2017/10/27 全球购物
Three Graces London官网:英国奢侈品牌
2021/03/18 全球购物
农药学硕士毕业生自荐信
2013/09/25 职场文书
开展批评与自我批评发言材料
2014/10/17 职场文书
2016新年致辞
2015/08/01 职场文书
Python进阶学习之带你探寻Python类的鼻祖-元类
2021/05/08 Python
python可视化大屏库big_screen示例详解
2021/11/23 Python
Nginx 反向代理解决跨域问题多种情况分析
2022/01/18 Servers