利用Python指令碼實現ping百度和google的方法

來源:互聯網
上載者:User
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 jsonimport xmlrpclibfrom 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能帶來一定的協助,如果有疑問大家可以留言交流。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.