圆月山庄资源网 Design By www.vgjia.com
最近需要对节点到源站自己做个监控,简单的ping可以检测到一些东西,但是http请求的检查也要进行,于是就研究了下pycurl。
pycurl是个用c语言实现的python 库,虽然据说不是那么pythonic,但是却很高效,它支持的协议居多:
supporting FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE and LDAP. libcurl supports HTTPS certificates, HTTP POST, HTTP PUT, FTP uploading, kerberos, HTTP form based upload, proxies, cookies, user+password authentication, file transfer resume, http proxy tunneling and more!
这一堆协议已经很多了,我需要就是http一个,相对urlib来说,这个库可能更快些。
以下这个脚本是对某一个给定的url进行检查,并打印出http相应码,响应大小,建立连接时间,准备传输时间,传输第一个字节时间,完成时间。
#!/usr/bin/python # coding: UTF-8 import StringIO import pycurl import sys import os class Test: def __init__(self): self.contents = '' def body_callback(self,buf): self.contents = self.contents + buf def test_gzip(input_url): t = Test() #gzip_test = file("gzip_test.txt", 'w') c = pycurl.Curl() c.setopt(pycurl.WRITEFUNCTION,t.body_callback) c.setopt(pycurl.ENCODING, 'gzip') c.setopt(pycurl.URL,input_url) c.perform() http_code = c.getinfo(pycurl.HTTP_CODE) http_conn_time = c.getinfo(pycurl.CONNECT_TIME) http_pre_tran = c.getinfo(pycurl.PRETRANSFER_TIME) http_start_tran = c.getinfo(pycurl.STARTTRANSFER_TIME) http_total_time = c.getinfo(pycurl.TOTAL_TIME) http_size = c.getinfo(pycurl.SIZE_DOWNLOAD) print 'http_code http_size conn_time pre_tran start_tran total_time' print "%d %d %f %f %f %f"%(http_code,http_size,http_conn_time,http_pre_tran,http_start_tran,http_total_time) if __name__ == '__main__': input_url = sys.argv[1] test_gzip(input_url)
脚本运行效果
xu:~/curl$ python pycurl_test.py http://daxuxu.info/ http_code http_size conn_time pre_tran start_tran total_time 200 8703 0.748147 0.748170 1.632642 1.636552
pycurl 的一些响应信息:
(参考: http://curl.haxx.se/libcurl/c/curl_easy_getinfo.html )
pycurl.NAMELOOKUP_TIME 域名解析时间 pycurl.CONNECT_TIME 远程服务器连接时间 pycurl.PRETRANSFER_TIME 连接上后到开始传输时的时间 pycurl.STARTTRANSFER_TIME 接收到第一个字节的时间 pycurl.TOTAL_TIME 上一请求总的时间 pycurl.REDIRECT_TIME 如果存在转向的话,花费的时间 pycurl.EFFECTIVE_URL pycurl.HTTP_CODE HTTP 响应代码 pycurl.REDIRECT_COUNT 重定向的次数 pycurl.SIZE_UPLOAD 上传的数据大小 pycurl.SIZE_DOWNLOAD 下载的数据大小 pycurl.SPEED_UPLOAD 上传速度 pycurl.HEADER_SIZE 头部大小 pycurl.REQUEST_SIZE 请求大小 pycurl.CONTENT_LENGTH_DOWNLOAD 下载内容长度 pycurl.CONTENT_LENGTH_UPLOAD 上传内容长度 pycurl.CONTENT_TYPE 内容的类型 pycurl.RESPONSE_CODE 响应代码 pycurl.SPEED_DOWNLOAD 下载速度 pycurl.SSL_VERIFYRESULT pycurl.INFO_FILETIME 文件的时间信息 pycurl.HTTP_CONNECTCODE HTTP 连接代码 pycurl.HTTPAUTH_AVAIL pycurl.PROXYAUTH_AVAIL pycurl.OS_ERRNO pycurl.NUM_CONNECTS pycurl.SSL_ENGINES pycurl.INFO_COOKIELIST pycurl.LASTSOCKET pycurl.FTP_ENTRY_PATH
圆月山庄资源网 Design By www.vgjia.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
圆月山庄资源网 Design By www.vgjia.com
暂无评论...
更新日志
2024年11月08日
2024年11月08日
- 雨林唱片《赏》新曲+精选集SACD版[ISO][2.3G]
- 罗大佑与OK男女合唱团.1995-再会吧!素兰【音乐工厂】【WAV+CUE】
- 草蜢.1993-宝贝对不起(国)【宝丽金】【WAV+CUE】
- 杨培安.2009-抒·情(EP)【擎天娱乐】【WAV+CUE】
- 周慧敏《EndlessDream》[WAV+CUE]
- 彭芳《纯色角3》2007[WAV+CUE]
- 江志丰2008-今生为你[豪记][WAV+CUE]
- 罗大佑1994《恋曲2000》音乐工厂[WAV+CUE][1G]
- 群星《一首歌一个故事》赵英俊某些作品重唱企划[FLAC分轨][1G]
- 群星《网易云英文歌曲播放量TOP100》[MP3][1G]
- 方大同.2024-梦想家TheDreamer【赋音乐】【FLAC分轨】
- 李慧珍.2007-爱死了【华谊兄弟】【WAV+CUE】
- 王大文.2019-国际太空站【环球】【FLAC分轨】
- 群星《2022超好听的十倍音质网络歌曲(163)》U盘音乐[WAV分轨][1.1G]
- 童丽《啼笑姻缘》头版限量编号24K金碟[低速原抓WAV+CUE][1.1G]