利用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的Pyspider为例剖析搜索引擎的网络爬虫实现方法
Mar 30 Python
python条件变量之生产者与消费者操作实例分析
Mar 22 Python
Python实现自动上京东抢手机
Feb 06 Python
Python高级特性切片(Slice)操作详解
Sep 27 Python
python增加图像对比度的方法
Jul 12 Python
python使用opencv实现马赛克效果示例
Sep 28 Python
利用python实现PSO算法优化二元函数
Nov 13 Python
python返回数组的索引实例
Nov 28 Python
Tensorflow的梯度异步更新示例
Jan 23 Python
python tkinter之顶层菜单、弹出菜单实例
Mar 04 Python
Python基于codecs模块实现文件读写案例解析
May 11 Python
简单了解Python多态与属性运行原理
Jun 15 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简单生成一组与多组随机字符串的方法
2017/05/09 PHP
thinkPHP5实现的查询数据库并返回json数据实例
2017/10/23 PHP
PHP设计模式之模板模式定义与用法详解
2018/12/20 PHP
Laravel统计一段时间间隔的数据方法
2019/10/09 PHP
关于laravel 子查询 & join的使用
2019/10/16 PHP
改善用户体验的五款jQuery插件分享
2011/05/22 Javascript
用Jquery重写windows.alert方法实现思路
2013/04/03 Javascript
jQuery实现按钮只点击一次后就取消点击事件绑定的方法
2015/06/26 Javascript
JavaScript编写点击查看大图的页面半透明遮罩层效果实例
2016/05/09 Javascript
js中获取键盘事件的简单实现方法
2016/10/10 Javascript
基于vue.js轮播组件vue-awesome-swiper实现轮播图
2017/03/17 Javascript
JS实现的二叉树算法完整实例
2017/04/06 Javascript
原生JavaScript实现精美的淘宝轮播图效果示例【附demo源码下载】
2017/05/27 Javascript
vue数据双向绑定的注意点
2017/06/23 Javascript
Vue-router 中hash模式和history模式的区别
2018/07/24 Javascript
vue-router 实现导航守卫(路由卫士)的实例代码
2018/09/02 Javascript
详解JavaScript实现动态的轮播图效果
2019/04/29 Javascript
vue+express+jwt持久化登录的方法
2019/06/14 Javascript
Vue中通过Vue.extend动态创建实例的方法
2019/08/13 Javascript
python flask框架实现传数据到js的方法分析
2019/06/11 Python
python 实现在一张图中绘制一个小的子图方法
2019/07/07 Python
python 列表推导式使用详解
2019/08/29 Python
pytorch三层全连接层实现手写字母识别方式
2020/01/14 Python
Jupyter notebook无法导入第三方模块的解决方式
2020/04/15 Python
给keras层命名,并提取中间层输出值,保存到文档的实例
2020/05/23 Python
如何利用Python 进行边缘检测
2020/10/14 Python
火山咖啡:Volcanica Coffee
2019/10/29 全球购物
Perfume’s Club中文官网:西班牙美妆在线零售品牌
2020/08/24 全球购物
护士自荐信怎么写
2013/10/18 职场文书
会计自我鉴定
2013/11/02 职场文书
银行实习鉴定
2013/12/13 职场文书
学校师德师风自我剖析材料
2014/09/29 职场文书
巴黎圣母院读书笔记
2015/06/26 职场文书
工作简历的自我评价
2019/05/16 职场文书
css 中多种边框的实现小窍门
2021/04/07 HTML / CSS
nginx日志格式分析和修改
2022/04/28 Servers