Home >Backend Development >Python Tutorial >How to ping Baidu and Google using Python scripts

How to ping Baidu and Google using Python scripts

高洛峰
高洛峰Original
2017-02-03 16:10:493045browse

Ping service

Ping is an update notification service based on the XML_RPC standard protocol. It is used by blogs to quickly notify search engines of content updates so that search engines can crawl and update them in a timely manner.

The computer is equivalent to the RPC Client, used to initiate requests to the RPC Server and accept the execution results of the method.

Python implementation method

Python has built-in XMLRPClib, which can easily handle the XMLRPC protocol, eliminating the trouble of packet unpacking.

Usage is very simple, first import the library:

import xmlrpclib

Generate xmlrpc server object:

sever = xmlrpclib.ServerProxy(ServerProxy)

where ServerProxy is the search engine The RPC server endpoint address.

Then you can execute the RPC server method. Take Baidu as an example:

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

weblogUpdates.extendedPing is the method that needs to be executed, with the four parameters in brackets It is required on the Baidu ping service page. result is the execution result returned by the method.

Encapsulation code

Just put the link that needs to be pinged in the ping_all function, and the parameters are passed as required.

#!/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()

Summary

The above is the entire content of this article. I hope the content of this article can bring some help to everyone learning or using python. If you have any questions You can leave messages to communicate.

For more related articles on how to use Python scripts to ping Baidu and Google, please pay attention to the PHP Chinese website!


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn