利用Python脚本实现ping百度和google的方法
|
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)
封装代码 在
#!/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,**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,rss_url)
if __name__ == '__main__':
main()
总结 以上就是这篇文章的全部内容了,希望本文的内容对大家学习或者使用python能带来一定的帮助,如果有疑问大家可以留言交流。 您可能感兴趣的文章:
(编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
