利用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实现统计代码行数的方法
May 22 Python
Python logging模块用法示例
Aug 28 Python
python执行CMD指令,并获取返回的方法
Dec 19 Python
Python基础学习之基本数据结构详解【数字、字符串、列表、元组、集合、字典】
Jun 18 Python
在linux下实现 python 监控usb设备信号
Jul 03 Python
python画图把时间作为横坐标的方法
Jul 07 Python
用python拟合等角螺线的实现示例
Dec 27 Python
检测tensorflow是否使用gpu进行计算的方式
Feb 03 Python
Python变量作用域LEGB用法解析
Feb 04 Python
tensorflow之变量初始化(tf.Variable)使用详解
Feb 06 Python
Python改变对象的字符串显示的方法
Aug 01 Python
python保存图片的四个常用方法
Feb 28 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 cron中的批处理
2008/09/16 PHP
PHPMYADMIN 简明安装教程 推荐
2010/03/07 PHP
PDO::_construct讲解
2019/01/27 PHP
html中使用javascript调用本地程序(exe、doc等)实现代码
2013/04/26 Javascript
使用JavaScript修改浏览器URL地址栏的实现代码
2013/10/21 Javascript
js获取域名的方法
2015/01/27 Javascript
jQuery实现带有上下控制按钮的简单多行滚屏效果代码
2015/09/04 Javascript
基于JavaScript实现图片点击弹出窗口而不是保存
2016/02/06 Javascript
jQuery实现对无序列表的排序功能(附demo源码下载)
2016/06/25 Javascript
深入理解JavaScript中的并行处理
2016/09/22 Javascript
jQuery Easyui datagrid editor为combobox时指定数据源实例
2016/12/19 Javascript
javascript实现文字无缝滚动
2016/12/27 Javascript
javascript history对象详解
2017/02/09 Javascript
详解数组Array.sort()排序的方法
2020/05/09 Javascript
20行JS代码实现网页刮刮乐效果
2017/06/23 Javascript
详解vue使用vue-layer-mobile组件实现toast,loading效果
2018/08/31 Javascript
vue发送websocket请求和http post请求的实例代码
2019/07/11 Javascript
django js 实现表格动态标序号的实例代码
2019/07/12 Javascript
vue - vue.config.js中devServer配置方式
2019/10/30 Javascript
vue+webpack dev本地调试全局样式引用失效的解决方案
2019/11/12 Javascript
在微信小程序中使用mqtt服务的方法
2019/12/13 Javascript
[25:45]2018DOTA2亚洲邀请赛4.5SOLO赛 Sylar vs Paparazi
2018/04/06 DOTA
一篇文章快速了解Python的GIL
2018/01/12 Python
python获取酷狗音乐top500的下载地址 MP3格式
2018/04/17 Python
python使用代理ip访问网站的实例
2018/05/07 Python
python将处理好的图像保存到指定目录下的方法
2019/01/10 Python
Python预测2020高考分数和录取情况
2020/07/08 Python
CSS3中几个新增加的盒模型属性使用教程
2016/03/01 HTML / CSS
前端隐藏出边界内容的实现方法
2016/04/14 HTML / CSS
通过canvas转换颜色为RGBA格式及性能问题的解决
2019/11/22 HTML / CSS
一份软件工程师的面试试题
2016/02/01 面试题
医院实习介绍信
2014/01/12 职场文书
乡镇计划生育工作汇报
2014/10/28 职场文书
运动会通讯稿200字
2015/07/20 职场文书
SpringBoot+Redis实现布隆过滤器的示例代码
2022/03/17 Java/Android
maven 解包依赖项中的文件的解决方法
2022/07/15 Java/Android