利用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 04 Python
python循环监控远程端口的方法
Mar 14 Python
关于Python数据结构中字典的心得
Dec 04 Python
读取json格式为DataFrame(可转为.csv)的实例讲解
Jun 05 Python
python 实时得到cpu和内存的使用情况方法
Jun 11 Python
pytorch torch.expand和torch.repeat的区别详解
Nov 05 Python
Python3 ffmpeg视频转换工具使用方法解析
Aug 10 Python
通过代码实例了解Python3编程技巧
Oct 13 Python
python中Pexpect的工作流程实例讲解
Mar 02 Python
python unittest单元测试的步骤分析
Aug 02 Python
Python Matplotlib库实现画局部图
Nov 17 Python
JAVA SpringMVC实现自定义拦截器
Mar 16 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 引用是个坏习惯
2010/03/12 PHP
php数组分页实现方法
2016/04/30 PHP
PHP简单实现正则匹配省市区的方法
2018/04/13 PHP
linux mint下安装phpstorm2020包括JDK部分的教程详解
2020/09/17 PHP
自适应图片大小的弹出窗口
2006/07/27 Javascript
cssQuery()的下载与使用方法
2007/01/12 Javascript
Javascript基础教程之for循环
2015/01/18 Javascript
JavaScript实现俄罗斯方块游戏过程分析及源码分享
2015/03/23 Javascript
JavaScript将字符串转换为整数的方法
2015/04/14 Javascript
简单讲解jQuery中的子元素过滤选择器
2016/04/18 Javascript
浅谈JavaScript的内置对象和浏览器对象
2016/06/03 Javascript
详解nodejs 文本操作模块-fs模块(一)
2016/12/22 NodeJs
JS实现多张图片预览同步上传功能
2017/06/23 Javascript
Vue中使用webpack别名的方法实例详解
2018/06/19 Javascript
JavaScript文本特效实例小结【3个示例】
2018/12/22 Javascript
JavaScript跳出循环的三种方法(break, return, continue)
2019/07/30 Javascript
微信小程序返回箭头跳转到指定页面实例解析
2019/10/08 Javascript
Python生成pdf文件的方法
2014/08/04 Python
Python魔术方法详解
2015/02/14 Python
python编程羊车门问题代码示例
2017/10/25 Python
Python网络编程详解
2017/10/31 Python
Python pymongo模块常用操作分析
2018/09/01 Python
Django 实现图片上传和显示过程详解
2019/07/18 Python
python多线程扫描端口(线程池)
2019/09/04 Python
python 实现人和电脑猜拳的示例代码
2020/03/02 Python
如何用python处理excel表格
2020/06/09 Python
亚马逊意大利站点:Amazon.it
2020/12/31 全球购物
财务出纳岗位职责
2014/02/03 职场文书
《青海高原一株柳》教学反思
2014/04/25 职场文书
2014年端午节演讲稿范文
2014/05/23 职场文书
创先争优个人承诺书
2014/08/30 职场文书
应届毕业生自荐信
2015/03/04 职场文书
为自己工作观后感
2015/06/11 职场文书
鲁滨逊漂流记读书笔记
2015/06/26 职场文书
2015年高三教学工作总结
2015/07/21 职场文书
节约用水广告语60条
2019/11/14 职场文书