一、運行環境
1、Windows 10
2、python 3.8
二、安裝第三方庫pycurl
1、先安裝
pip install wheel
2、在安裝pycurl
https://download.lfd.uci.edu/pythonlibs/t7epjj8p/pycurl-7.43.0.3-cp38-cp38-win_amd64.whl
三、測試腳本
1 import pycurl 2 import os,sys 3 import time 4 import sys 5 6 7 try: 8 URL=sys.argv[1] # 測試網站的域名 9 except Exception as e: 10 print ("Error:"+str(e)) 11 print ("用法:請輸入要探測的web地址") 12 sys.exit() 13 #URL="http://www.baidu.com" #測試網站的域名 14 c = pycurl.Curl() 15 c.setopt(pycurl.URL, URL) 16 c.setopt(pycurl.CONNECTTIMEOUT, 5) 17 c.setopt(pycurl.TIMEOUT, 5) 18 c.setopt(pycurl.NOPROGRESS, 1) 19 c.setopt(pycurl.FORBID_REUSE, 1) 20 c.setopt(pycurl.MAXREDIRS, 1) 21 c.setopt(pycurl.DNS_CACHE_TIMEOUT,30) 22 23 indexfile = open(os.path.dirname(os.path.realpath(__file__))+"/content.txt", "wb") 24 c.setopt(pycurl.WRITEHEADER, indexfile) 25 c.setopt(pycurl.WRITEDATA, indexfile) 26 try: 27 c.perform() #提交請求 28 except Exception as e: 29 print("connecion error:"+str(e)) 30 indexfile.close() 31 c.close() 32 sys.exit() 33 34 NAMELOOKUP_TIME = c.getinfo(c.NAMELOOKUP_TIME) 35 CONNECT_TIME = c.getinfo(c.CONNECT_TIME) 36 PRETRANSFER_TIME = c.getinfo(c.PRETRANSFER_TIME) 37 STARTTRANSFER_TIME = c.getinfo(c.STARTTRANSFER_TIME) 38 39 TOTAL_TIME = c.getinfo(c.TOTAL_TIME) 40 HTTP_CODE = c.getinfo(c.HTTP_CODE) 41 SIZE_DOWNLOAD = c.getinfo(c.SIZE_DOWNLOAD) 42 HEADER_SIZE = c.getinfo(c.HEADER_SIZE) 43 SPEED_DOWNLOAD=c.getinfo(c.SPEED_DOWNLOAD) 44 45 print("測試網站:",URL) 46 print("HTTP狀態碼:{}" .format(HTTP_CODE)) 47 print("HTTP狀態碼:%s" %(HTTP_CODE)) 48 print("DNS解析時間:%.2f ms"%(NAMELOOKUP_TIME*1000)) 49 print("建立連接時間:%.2f ms" %(CONNECT_TIME*1000)) 50 print("准備傳輸時間:%.2f ms" %(PRETRANSFER_TIME*1000)) 51 print("傳輸開始時間:%.2f ms" %(STARTTRANSFER_TIME*1000)) 52 print("傳輸結束總時間:%.2f ms" %(TOTAL_TIME*1000)) 53 print("下載數據包大小:%d bytes/s" %(SIZE_DOWNLOAD)) 54 print("HTTP頭部大小:%d byte" %(HEADER_SIZE)) 55 print("平均下載速度:%d bytes/s" %(SPEED_DOWNLOAD)) 56 #關閉文件及Curl對象 57 indexfile.close() 58 c.close()