利用Python脚本实现ping百度和google的方法

作者:PegasusWang 时间:2022-03-21 06:45:37 

Ping服务

ping 是基于 XML_RPC 标准协议的更新通告服务,用于Blog把内容更新快速通知给搜索引擎,以便搜索引擎及时进行抓取和更新。

计算机就相当于 RPC Client ,用于向 RPC Server 发起请求,并接受方法的执行结果。

Python实现方法

Python 内置了 XMLRPClib ,可以很方便地处理XMLRPC协议,免去了封包解包的麻烦。

用法很简单,首先导入库:


import xmlrpclib

生成xmlrpc服务器对象:


sever = xmlrpclib.ServerProxy(ServerProxy)

其中 ServerProxy 是搜索引擎的RPC服务器端点地址。

然后便可以执行RPC服务器的方法了,以百度为例:


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

weblogUpdates.extendedPing 是需要执行的方法,其中括号中的四个参数是 百度ping服务页面 上所要求的。 result 是方法返回的执行结果。

封装代码

ping_all函数里放上需要ping的链接就可以了,参数按照需求传。


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

来源:http://ningning.today/2015/07/30/web/Python脚本ping百度和google/

标签:python,ping,脚本
0
投稿

猜你喜欢

  • python中heapq堆排算法的实现

    2022-10-13 23:11:40
  • DWCS3-CSS布局之二CSS规则定义

    2008-06-16 13:36:00
  • python设置环境变量的原因和方法

    2023-05-12 18:31:35
  • Python爬虫抓取技术的一些经验

    2021-06-09 12:02:23
  • 史上最全Python文件类型读写库大盘点

    2021-01-28 22:08:26
  • 理解MySQL查询优化处理过程

    2024-01-21 18:30:46
  • django rest framework 数据的查找、过滤、排序的示例

    2023-07-18 16:33:39
  • 小结Python的反射机制

    2023-10-16 22:30:28
  • 真正保险的“有属性”检测

    2010-03-28 13:25:00
  • python 爬虫请求模块requests详解

    2022-09-06 01:33:32
  • SQL Server 安装出错:以前的某个程序安装已在安装计算机上创建挂起的文件操作

    2010-02-23 14:48:00
  • python画图系列之个性化显示x轴区段文字的实例

    2023-01-16 06:15:24
  • Python中logging日志库实例详解

    2023-10-04 13:26:25
  • MAC下Mysql5.7.10版本修改root密码的方法

    2024-01-27 00:05:58
  • 通过Python 获取Android设备信息的轻量级框架

    2021-08-18 21:41:00
  • Python3.5以上版本lxml导入etree报错的解决方案

    2021-06-25 12:53:16
  • php微信开发之批量生成带参数的二维码

    2023-11-23 19:27:11
  • python如何发送带有附件、正文为HTML的邮件

    2022-05-22 08:15:15
  • Python如何爬取b站热门视频并导入Excel

    2023-06-20 23:27:44
  • python对象转字典的两种实现方式示例

    2023-12-06 15:47:05
  • asp之家 网络编程 m.aspxhome.com