#!/usr/bin/python import pycurl import time import sys import os,sys url=input("Enter the url you want to query:\n ") c=pycurl.Curl() c.setopt(pycurl.URL,url) c.setopt(pycurl.CONNECTTIMEOUT,5) #定義請求串連數 c.setopt(pycurl.NOPROGRESS,1) #屏蔽下載進度條 c.setopt(pycurl.FORBID_REUSE,1)#完成互動後強制中斷連線,不重用 c.setopt(pycurl.MAXREDIRS,1) #指定HTTP重新導向的最大數為1 c.setopt(pycurl.DNS_CACHE_TIMEOUT,30) #設定儲存DNS資訊的時間為30秒 indexfile=open(os.path.dirname(os.path.realpath(__file__))+"/content.txt","wb") c.setopt(pycurl.WRITEHEADER,indexfile) c.setopt(pycurl.WRITEDATA,indexfile) try: c.perform() #提交請求 except Exception as e: print("Connection error:",str(e)) indexfile.close() c.close() sys.exit() dns_time=c.getinfo(c.NAMELOOKUP_TIME) #擷取DNS計息時間 connect_time=c.getinfo(c.CONNECT_TIME) #擷取建立串連的時間 pretransfer_time=c.getinfo(c.PRETRANSFER_TIME) #擷取從建立串連到準備傳輸的時間 starttransfer_time=c.getinfo(c.STARTTRANSFER_TIME) #擷取從建立串連到傳輸開始的時間 total_time=c.getinfo(c.TOTAL_TIME) #擷取傳輸的總時間 http_code=c.getinfo(c.HTTP_CODE) #擷取http狀態代碼 size_downland=c.getinfo(c.SIZE_DOWNLOAD) #擷取下載包大小 head_size=c.getinfo(c.HEADER_SIZE) #擷取http頭部大小 speed_downland=c.getinfo(c.SPEED_DOWNLOAD) # 擷取平均下載速度 print("HTTP狀態代碼:%s" % (http_code) ) print("DNS解析時間:%.2f" % (dns_time)) print("建立連線時間:%.2f" % (connect_time)) print("準備傳輸時間:%.2f:" % (pretransfer_time)) print("傳輸開始時間:%.2f:" % (starttransfer_time)) print("傳輸結束總時間:%.2f" % (total_time)) print("下載資料包大小:%d byte" % size_downland) print("HTTP頭部大小:%d byte" % head_size) print("平均下載速度:%d bytes/s" % speed_downland) indexfile.close() c.close() |