利用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基础教程之Hello World!
Aug 29 Python
Python实现对excel文件列表值进行统计的方法
Jul 25 Python
Python正则表达式使用范例分享
Dec 04 Python
python3之微信文章爬虫实例讲解
Jul 12 Python
python实现简易通讯录修改版
Mar 13 Python
Python实现读取txt文件并转换为excel的方法示例
May 17 Python
python验证身份证信息实例代码
May 06 Python
Django 解决开发自定义抛出异常的问题
May 21 Python
django下创建多个app并设置urls方法
Aug 02 Python
详解anaconda安装步骤
Nov 23 Python
Python基于mediainfo批量重命名图片文件
Dec 29 Python
还在手动盖楼抽奖?教你用Python实现自动评论盖楼抽奖(一)
Jun 07 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
让你同时上传 1000 个文件 (二)
2006/10/09 PHP
详解WordPress开发中的get_post与get_posts函数使用
2016/01/04 PHP
laravel 框架结合关联查询 when()用法分析
2019/11/22 PHP
有趣的javascript数组定义方法
2010/09/10 Javascript
Javascript变量函数浅析
2011/09/02 Javascript
基于NodeJS的前后端分离的思考与实践(二)模版探索
2014/09/26 NodeJs
javascript实现了照片拖拽点击置顶的照片墙代码
2015/04/03 Javascript
JavaScript数据库TaffyDB用法实例分析
2015/07/27 Javascript
使用canvas实现仿新浪微博头像截取上传功能
2015/09/02 Javascript
angularjs学习笔记之完整的项目结构
2015/09/26 Javascript
在Ubuntu系统上安装Node.JS的教程
2015/10/15 Javascript
利用JQuery实现datatables插件的增加和删除行功能
2017/01/06 Javascript
jsonp跨域请求实现示例
2017/03/13 Javascript
使用MUI框架模拟手机端的下拉刷新和上拉加载功能
2017/09/04 Javascript
基于Vue的SPA动态修改页面title的方法(推荐)
2018/01/02 Javascript
Vue.js路由实现选项卡简单实例
2019/07/24 Javascript
[33:15]2018DOTA2亚洲邀请赛3月30日 小组赛B组 VP VS Mineski
2018/03/31 DOTA
[52:44]VGJ.T vs infamous Supermajor小组赛D组败者组第一轮 BO3 第一场 6.3
2018/06/04 DOTA
[48:31]完美世界DOTA2联赛PWL S3 DLG vs Phoenix 第二场 12.17
2020/12/19 DOTA
用Python编写简单的微博爬虫
2016/03/04 Python
Python字符串处理实例详解
2017/05/18 Python
详解Numpy中的广播原则/机制
2018/09/20 Python
Python OpenCV实现视频分帧
2019/06/01 Python
使用python将excel数据导入数据库过程详解
2019/08/27 Python
python基于K-means聚类算法的图像分割
2019/10/30 Python
TensorFlow——Checkpoint为模型添加检查点的实例
2020/01/21 Python
python脚本实现mp4中的音频提取并保存在原目录
2020/02/27 Python
美国高级工作服品牌:Carhartt
2018/01/25 全球购物
莫斯科制造商的廉价皮大衣:Fursk
2020/06/09 全球购物
党委书记岗位职责
2013/11/24 职场文书
硕士研究生个人求职信
2013/12/04 职场文书
获奖的大学生创业计划书
2014/01/05 职场文书
大学生村官座谈会发言材料
2014/05/25 职场文书
承诺书范文
2014/06/03 职场文书
毕业生自荐信范文
2015/03/05 职场文书
windows下快速安装nginx并配置开机自启动的方法
2021/05/11 Servers