ホームページ >バックエンド開発 >Python チュートリアル >Python スクリプトを使用して Baidu と Google に ping を送信する方法

Python スクリプトを使用して Baidu と Google に ping を送信する方法

高洛峰
高洛峰オリジナル
2017-02-03 16:10:493037ブラウズ

Ping サービス

ping は、XML_RPC 標準プロトコルに基づく更新通知サービスで、検索エンジンがタイムリーにコンテンツの更新をクロールして更新できるように、ブログによってコンテンツの更新を迅速に通知するために使用されます。

コンピューターは RPC クライアントに相当し、RPC サーバーへのリクエストを開始し、メソッドの実行結果を受け入れるために使用されます。

Pythonの実装方法

PythonにはXMLRPClibが組み込まれており、XMLRPCプロトコルを簡単に扱えるため、パケットや解凍の手間が省けます。

使用方法は非常に簡単で、まずライブラリをインポートします:

import xmlrpclib

xmlrpc サーバー オブジェクトを生成します:

sever = xmlrpclib.ServerProxy(ServerProxy)

ここで、ServerProxy は検索エンジンの RPC サーバー エンドポイント アドレスです。

その後、RPC サーバー メソッドを実行できます。Baidu を例に挙げます。

result = server.weblogUpdates.extendedPing(blog_name,index_addr,new_post_addr,rss_addr)

weblogUpdates.extendedPing は実行する必要があるメソッドで、括弧内の 4 つのパラメーターは Baidu ping サービス ページで必要です。 result はメソッドによって返された実行結果です。

カプセル化コード

pingする必要があるリンクをping_all関数に入れるだけで、必要に応じてパラメータが渡されます。

#!/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 スクリプトを使用して Baidu や Google に ping を送信する方法に関するその他の関連記事については、PHP 中国語 Web サイトに注目してください。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。