利用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  连接字符串(join %)
Sep 06 Python
Python制作CSDN免积分下载器
Mar 10 Python
python递归删除指定目录及其所有内容的方法
Jan 13 Python
pandas groupby 分组取每组的前几行记录方法
Apr 20 Python
新年快乐! python实现绚烂的烟花绽放效果
Jan 30 Python
python装饰器常见使用方法分析
Jun 26 Python
Python实现Mysql数据统计及numpy统计函数
Jul 15 Python
python return逻辑判断表达式实现解析
Dec 02 Python
PyTorch中Tensor的数据统计示例
Feb 17 Python
一文详述 Python 中的 property 语法
Sep 01 Python
python3读取文件指定行的三种方法
May 24 Python
TensorFlow的自动求导原理分析
May 26 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开发环境配置(MySQL数据库安装图文教程)
2010/04/28 PHP
PHP中实现汉字转区位码应用源码实例解析
2010/06/14 PHP
php各种编码集详解和以及在什么情况下进行使用
2011/09/11 PHP
php daddslashes()和 saddslashes()有哪些区别分析
2012/10/26 PHP
php合并js请求的例子
2013/11/01 PHP
PHP的mysqli_query参数MYSQLI_STORE_RESULT和MYSQLI_USE_RESULT的区别
2014/09/29 PHP
PHP中基本HTTP认证技巧分析
2015/03/16 PHP
laravel 框架实现无限级分类的方法示例
2019/10/31 PHP
用js实现的页面关键字密度查询代码
2007/12/27 Javascript
extjs 学习笔记(三) 最基本的grid
2009/10/15 Javascript
仿百度联盟对联广告实现代码
2014/08/30 Javascript
在Ubuntu系统上安装Node.JS的教程
2015/10/15 Javascript
jQuery插件formValidator自定义函数扩展功能实例详解
2015/11/25 Javascript
koa router 多文件引入的方法示例
2019/05/22 Javascript
[30:00]完美世界DOTA2联赛PWL S2 Rebirth vs LBZS 第二场 11.28
2020/12/01 DOTA
用pywin32实现windows模拟鼠标及键盘动作
2014/04/22 Python
Python中list初始化方法示例
2016/09/18 Python
python利用不到一百行代码实现一个小siri
2017/03/02 Python
对Python进行数据分析_关于Package的安装问题
2017/05/22 Python
Python实现两款计算器功能示例
2017/12/19 Python
对python的文件内注释 help注释方法
2018/05/23 Python
python中单下划线_的常见用法总结
2018/07/10 Python
python实现输出一个序列的所有子序列示例
2019/11/18 Python
解决pyshp UnicodeDecodeError的问题
2019/12/06 Python
python 爬取古诗文存入mysql数据库的方法
2020/01/08 Python
python连接手机自动搜集蚂蚁森林能量的实现代码
2021/02/24 Python
幼儿如何来做好自我评价
2013/11/05 职场文书
高中运动会广播稿
2014/01/21 职场文书
市场营销求职信范文
2014/02/21 职场文书
超市开学活动方案
2014/03/01 职场文书
厨房领班竞聘演讲稿
2014/04/23 职场文书
货款欠条范本
2015/07/03 职场文书
欢迎新生标语2015
2015/07/16 职场文书
2015年征兵工作总结
2015/07/23 职场文书
SpringCloud Alibaba 基本开发框架搭建过程
2021/06/13 Java/Android
golang fmt格式“占位符”的实例用法详解
2021/07/04 Golang