Ping-Dienst
Ping ist ein Update-Benachrichtigungsdienst, der auf dem XML_RPC-Standardprotokoll basiert. Er wird von Blogs verwendet, um Suchmaschinen schnell über Inhaltsaktualisierungen zu informieren, damit Suchmaschinen diese crawlen und aktualisieren können rechtzeitig.
Der Computer entspricht dem RPC-Client, der zum Initiieren von Anforderungen an den RPC-Server und zum Akzeptieren der Ausführungsergebnisse der Methode verwendet wird.
Python-Implementierungsmethode
Python verfügt über eine integrierte XMLRPClib, die das XMLRPC-Protokoll problemlos verarbeiten kann, wodurch die Probleme beim Entpacken von Paketen entfallen.
Die Verwendung ist sehr einfach, importieren Sie zuerst die Bibliothek:
import xmlrpclib
Xmlrpc-Serverobjekt generieren:
sever = xmlrpclib.ServerProxy(ServerProxy)
wobei ServerProxy die RPC-Server-Endpunktadresse der Suchmaschine ist.
Dann können Sie die RPC-Servermethode als Beispiel verwenden:
result = server.weblogUpdates.extendedPing(blog_name,index_addr,new_post_addr,rss_addr)
weblogUpdates.extendedPing ist die Methode, die ausgeführt werden muss die vier in Klammern Die Parameter sind auf der Baidu-Ping-Service-Seite erforderlich. Ergebnis ist das von der Methode zurückgegebene Ausführungsergebnis.
Paketcode
Fügen Sie einfach den Link, der gepingt werden muss, in die Funktion ping_all ein und die Parameter werden nach Bedarf übergeben.
#!/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()
Zusammenfassung
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels für jeden beim Erlernen oder Verwenden von Python hilfreich sein kann. Wenn Sie Fragen haben, können Sie zur Kommunikation eine Nachricht hinterlassen.
Weitere verwandte Artikel zur Verwendung von Python-Skripten zum Pingen von Baidu und Google finden Sie auf der chinesischen PHP-Website!