利用Python脚本实现ping百度和google的方法
作者:PegasusWang 发布时间:2022-03-21 06:45:37
标签:python,ping,脚本
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/
0
投稿
猜你喜欢
- 实现一个优先级队列,每次pop的元素要是优先级高的元素,由于heapq.heapify(list)默认构建一个小顶堆,因此要将priorit
- php获取文件创建时间、修改时间常用代码filemtime ( string filename )返回文件上次被修改的时间,出错时返回 FA
- 前言:在Python里面,只要类型对象实现了__iter__,那么它的实例对象就被称为可迭代对象(Iterable),比如字符串、元组、列表
- 1.hashlib的简介hashlib 是一个提供了一些流行的hash(摘要)算法的Python标准库.其中所包括的算法有 md5, sha
- Innodb:[fb]# ll -hs url_comment_*.ibd633M -rw-rw---- 1 mysql mysql 632
- 1、生成配置文件''' 生成配置文件'''import configparse
- 众所周知,python文件读取文件的时候所支持的newlines(即换行符),是指定的。这一点不管是从python的doucuments上还
- mysql是linux平台下最流行的数据库系统,今天介绍的是mysql的安装及简单的操作方法!groupadd mysql //建立mysq
- 这里的Counter是指collections中的Counter,通过Counter可以实现字典的创建以及字典key出现频次的统计。然而,使
- 也许有人会说我火星了,但我的确是第一次知道,欢迎我从火星归来吧。在 Yahoo! 首页上隐藏着这样一个小秘密,大家到 www.yahoo.c
- 很多小伙伴对于slice参数的概念理解停留在概念上,切片的参数有三个,分别是step 、start 、stop 。因为参数的值也是多变的,所
- 我的环境,Windows10,Python3.6.3查询了很多有关资料,发现都是Python2版本操作Word文件的,所以就写了这篇短小的文
- 一、YOLOv5简介YOLOv5是一种目标检测算法,由ultralytics公司开发。它采用单一神经网络同时完成对象识别和边界框回归,并使用
- 简介:外部连接和自联接inner join(等值连接) 只返回两个表中联结字段相等的行left join(左联接) 返回包括左表中的所有记录
- 形态学处理,除了最基本的膨胀、腐蚀、开/闭运算、黑/白帽处理外,还有一些更高级的运用,如凸包,连通区域标记,删除小块区域等。1、凸包凸包是指
- 注意:如果您尚未阅读过原来那篇老文章《悟透JavaScript》,请先行阅读该文,以了解上下文关系。在上面的示例中,我们定义了两个语法甘露,
- 一、Selects检索表中的所有行$users = DB::table('users')->get();foreach
- python 如何获取文件夹中的全部文件在神经网络准备训练集的时候,经常需要从文件夹中读取全部图片。经常遇到的有两种方式1 os.listd
- MySQL的本地备份和双机相互备份脚本:首先,我们需要修改脚本进行必要的配置,然后以root用户执行。◆1. 第一执行远程备份时先用 fir
- 作者:Lachlan Hunt概要网络是不断的进化的. 新的和有创意的网站每天都在出现, 从各方面都在冲击着HTML的边界. HTML 4来