python3測試網站網速


一、運行環境

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()

四、驗證


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM