利用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 自动化将markdown文件转成html文件的方法
Sep 23 Python
Python 2.7中文显示与处理方法
Jul 16 Python
Python中__slots__属性介绍与基本使用方法
Sep 05 Python
[原创]Python入门教程1. 基本运算【四则运算、变量、math模块等】
Oct 28 Python
python实现n个数中选出m个数的方法
Nov 13 Python
Python中最好用的命令行参数解析工具(argparse)
Aug 23 Python
Pycharm创建项目时如何自动添加头部信息
Nov 14 Python
Python hmac模块使用实例解析
Dec 24 Python
Django用数据库表反向生成models类知识点详解
Mar 25 Python
python多线程和多进程关系详解
Dec 14 Python
在pyCharm中下载第三方库的方法
Apr 18 Python
Python图片处理之图片裁剪教程
May 27 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
延长phpmyadmin登录时间的方法
2011/02/06 PHP
Yii获取当前url和域名的方法
2015/06/08 PHP
joomla数据库操作示例代码
2016/01/06 PHP
thinkPHP模板中函数的使用方法示例
2016/11/30 PHP
解决laravel session失效的问题
2019/10/14 PHP
jQuery 渐变下拉菜单
2009/12/15 Javascript
Prototype的Class.create函数解析
2011/09/22 Javascript
javascript中强制执行toString()具体实现
2013/04/27 Javascript
js过滤HTML标签以及空格的思路及代码
2013/05/24 Javascript
js Math 对象的方法
2013/09/01 Javascript
javascript类型转换示例
2014/04/29 Javascript
js 通过cookie实现刷新不变化树形菜单
2014/10/30 Javascript
javascript多行字符串的简单实现方式
2015/05/04 Javascript
javascript实现类似百度分享功能的方法
2015/07/27 Javascript
jq实现左侧显示图片右侧文字滑动切换效果
2015/08/04 Javascript
js中删除数组中的某一元素实例(无下标时)
2017/02/28 Javascript
常见的浏览器Hack技巧整理
2017/06/29 Javascript
详解vue配置后台接口方式
2019/03/29 Javascript
vue中使用 pako.js 解密 gzip加密字符串的方法
2019/06/10 Javascript
jquery 时间戳转日期过程详解
2019/10/12 jQuery
python实现稀疏矩阵示例代码
2017/06/09 Python
numpy中的高维数组转置实例
2018/04/17 Python
Python图像处理之简单画板实现方法示例
2018/08/30 Python
python实现换位加密算法的示例
2018/10/14 Python
python3.x提取中文的正则表达式示例代码
2019/07/23 Python
简单了解python协程的相关知识
2019/08/31 Python
利用PyTorch实现VGG16教程
2020/06/24 Python
Python实现敏感词过滤的4种方法
2020/09/12 Python
python logging模块的使用详解
2020/10/23 Python
新加坡第一大健康与美容零售商:屈臣氏新加坡(Watsons Singapore)
2020/12/11 全球购物
酒店采购员岗位职责
2014/03/14 职场文书
学校爱心捐款倡议书
2014/05/13 职场文书
物流专业专科生职业生涯规划书
2014/09/14 职场文书
医学检验专业自荐信
2014/09/18 职场文书
家庭贫困证明范本(经典版)
2014/09/22 职场文书
排球赛新闻稿
2015/07/17 职场文书