利用Python腳本實(shí)現(xiàn)ping百度和google的方法
Ping服務(wù)
ping 是基于 XML_RPC 標(biāo)準(zhǔn)協(xié)議的更新通告服務(wù),用于Blog把內(nèi)容更新快速通知給搜索引擎,以便搜索引擎及時(shí)進(jìn)行抓取和更新。
計(jì)算機(jī)就相當(dāng)于 RPC Client ,用于向 RPC Server 發(fā)起請(qǐng)求,并接受方法的執(zhí)行結(jié)果。
Python實(shí)現(xiàn)方法
Python 內(nèi)置了 XMLRPClib ,可以很方便地處理XMLRPC協(xié)議,免去了封包解包的麻煩。
用法很簡(jiǎn)單,首先導(dǎo)入庫(kù):
import xmlrpclib
生成xmlrpc服務(wù)器對(duì)象:
sever = xmlrpclib.ServerProxy(ServerProxy)
其中 ServerProxy 是搜索引擎的RPC服務(wù)器端點(diǎn)地址。
然后便可以執(zhí)行RPC服務(wù)器的方法了,以百度為例:
result = server.weblogUpdates.extendedPing(blog_name,index_addr,new_post_addr,rss_addr)
weblogUpdates.extendedPing
是需要執(zhí)行的方法,其中括號(hào)中的四個(gè)參數(shù)是 百度ping服務(wù)頁(yè)面 上所要求的。 result 是方法返回的執(zhí)行結(jié)果。
封裝代碼
在ping_all
函數(shù)里放上需要ping的鏈接就可以了,參數(shù)按照需求傳。
#!/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()
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家學(xué)習(xí)或者使用python能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流。
相關(guān)文章
Python高階函數(shù)與函數(shù)式編程概念及使用實(shí)例探究
這篇文章主要為大家介紹了Python高階函數(shù)與函數(shù)式編程概念及使用實(shí)例探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12python常用數(shù)據(jù)重復(fù)項(xiàng)處理方法
在本篇文章里小編給大家整理的是關(guān)于python常用數(shù)據(jù)重復(fù)項(xiàng)處理方法,需要的朋友們參考下。2019-11-11Python簡(jiǎn)單連接MongoDB數(shù)據(jù)庫(kù)的方法
這篇文章主要介紹了Python簡(jiǎn)單連接MongoDB數(shù)據(jù)庫(kù)的方法,結(jié)合實(shí)例形式分析了Python使用pymongo模塊操作MongoDB數(shù)據(jù)庫(kù)的相關(guān)技巧,需要的朋友可以參考下2016-03-03Python pytesseract驗(yàn)證碼識(shí)別庫(kù)用法解析
這篇文章主要介紹了Python pytesseract驗(yàn)證碼識(shí)別庫(kù)用法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06Laravel+Dingo/Api 自定義響應(yīng)的實(shí)現(xiàn)
這篇文章主要介紹了Laravel+Dingo/Api 自定義響應(yīng)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-02-02Python讀寫鎖實(shí)現(xiàn)實(shí)現(xiàn)代碼解析
這篇文章主要介紹了Python讀寫鎖實(shí)現(xiàn)實(shí)現(xiàn)代碼解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11