Service Ping
Ping est un service de notification de mise à jour basé sur le protocole standard XML_RPC. Il est utilisé par les blogs pour informer rapidement les moteurs de recherche des mises à jour de contenu afin que les moteurs de recherche puissent les explorer et les mettre à jour. en temps opportun.
L'ordinateur est équivalent au Client RPC, utilisé pour lancer des requêtes vers le Serveur RPC et accepter les résultats d'exécution de la méthode.
Méthode d'implémentation de Python
Python intègre XMLRPClib, qui peut facilement gérer le protocole XMLRPC, éliminant ainsi les problèmes de décompression des paquets.
L'utilisation est très simple, importez d'abord la bibliothèque :
import xmlrpclib
Générer l'objet serveur xmlrpc :
sever = xmlrpclib.ServerProxy(ServerProxy)
où ServerProxy est l'adresse du point de terminaison du serveur RPC du moteur de recherche.
Ensuite, vous pouvez exécuter la méthode du serveur RPC. Prenons Baidu comme exemple :
result = server.weblogUpdates.extendedPing(blog_name,index_addr,new_post_addr,rss_addr)
weblogUpdates.extendedPing est la méthode qui doit être exécutée, parmi lesquelles les quatre entre parenthèses Les paramètres sont requis sur la page du service Baidu ping. result est le résultat d’exécution renvoyé par la méthode.
Code d'emballage
Mettez simplement le lien qui doit être pingé dans la fonction ping_all, et les paramètres sont transmis comme requis.
#!/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()
Résumé
Ce qui précède est l'intégralité du contenu de cet article. J'espère que le contenu de cet article pourra être utile à tout le monde dans l'apprentissage ou l'utilisation de Python. Si vous avez des questions, vous pouvez laisser un message pour communiquer.
Pour plus d'articles sur la façon d'utiliser les scripts Python pour pinger Baidu et Google, veuillez prêter attention au site Web PHP chinois !