利用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设置socket代理的方法
Jan 14 Python
浅谈终端直接执行py文件,不需要python命令
Jan 23 Python
详解Python3.6安装psutil模块和功能简介
May 30 Python
pandas 条件搜索返回列表的方法
Oct 30 Python
对python多线程SSH登录并发脚本详解
Feb 14 Python
python使用pipeline批量读写redis的方法
Feb 18 Python
Python Numpy数组扩展repeat和tile使用实例解析
Dec 09 Python
如何使用python实现模拟鼠标点击
Jan 06 Python
Python3标准库glob文件名模式匹配的问题
Mar 13 Python
pycharm 关掉syntax检查操作
Jun 09 Python
Python爬虫之Selenium下拉框处理的实现
Dec 04 Python
Python中如何处理常见报错
Jan 18 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
shell脚本作为保证PHP脚本不挂掉的守护进程实例分享
2013/07/15 PHP
PHP获取文件行数的方法
2015/06/10 PHP
Symfony2实现在controller中获取url的方法
2016/03/18 PHP
基于jQueryUI和Corethink实现百度的搜索提示功能
2016/11/09 PHP
强悍无比的WEB开发好助手FireBug(Firefox Plugin)
2007/01/16 Javascript
使用Jquery来实现可以输入值的下拉选单 雏型
2011/12/06 Javascript
jQuery循环滚动展示代码 可应用到文字和图片上
2012/05/11 Javascript
javascrip关于继承的小例子
2013/05/10 Javascript
jquery实现表格隔行换色效果
2015/11/19 Javascript
jQuery插件echarts实现的去掉X轴、Y轴和网格线效果示例【附demo源码下载】
2017/03/04 Javascript
JS实现图片手风琴效果
2020/04/17 Javascript
JavaScript中的"=、==、==="区别讲解
2019/01/22 Javascript
js定义类的方法示例【ES5与ES6】
2019/07/30 Javascript
[03:46]DAC趣味视频-中文考试.mp4
2017/04/02 DOTA
python完成FizzBuzzWhizz问题(拉勾网面试题)示例
2014/05/05 Python
python实现文本文件合并
2015/12/29 Python
Python对数据进行插值和下采样的方法
2018/07/03 Python
python 遍历列表提取下标和值的实例
2018/12/25 Python
浅谈python中get pass用法
2019/03/19 Python
python 读取修改pcap包的例子
2019/07/23 Python
Pytorch卷积层手动初始化权值的实例
2019/08/17 Python
对YOLOv3模型调用时候的python接口详解
2019/08/26 Python
30秒学会30个超实用Python代码片段【收藏版】
2019/10/15 Python
Python SQLAlchemy入门教程(基本用法)
2019/11/11 Python
使用python检查yaml配置文件是否符合要求
2020/04/09 Python
Reebonz中国官网:新加坡奢侈品购物网站
2017/03/17 全球购物
介绍JAVA 中的Collection FrameWork(及如何写自己的数据结构)
2014/10/31 面试题
服务行业个人求职的自我评价
2013/12/12 职场文书
优秀交警事迹材料
2014/01/26 职场文书
成语的广告词
2014/03/19 职场文书
领导党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
学习党的群众路线教育实践活动心得体会范文
2014/11/03 职场文书
考研英语复习计划
2015/01/19 职场文书
什么是执行力?9个故事告诉您:成功绝非偶然!
2019/07/05 职场文书
小学三年级作文之写景
2019/11/05 职场文书
浅谈CSS不规则边框的生成方案
2021/05/25 HTML / CSS