怎么用Python采集web質(zhì)量數(shù)據(jù)到Excel表-創(chuàng)新互聯(lián)

本篇內(nèi)容介紹了“怎么用Python采集web質(zhì)量數(shù)據(jù)到Excel表”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!

創(chuàng)新互聯(lián)建站堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都做網(wǎng)站、網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的東平網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

Python腳本編寫前的準備:

  • 下載pycurl模塊,直接雙擊安裝即可。

  • xlsxwriter使用pip命令安裝,此處需要注意環(huán)境變量是否配置。

1、由于pycurl是下載下來直接安裝的,這里就不寫了,比較簡單。
2、安裝xlsxwriter模塊(需可連接Internet)
怎么用Python采集web質(zhì)量數(shù)據(jù)到Excel表

3、采集數(shù)據(jù)的腳本如下:

# _._ coding:utf-8 _._
import os,sys
import pycurl
import xlsxwriter

URL="www.baidu.com"            #探測目標的url,需要探測哪個目標,這里改哪個即可
c = pycurl.Curl()                     #創(chuàng)建一個curl對象
c.setopt(pycurl.URL, URL)             #定義請求的url常量
c.setopt(pycurl.CONNECTTIMEOUT, 10)  #定義請求連接的等待時間
c.setopt(pycurl.TIMEOUT, 10)          #定義請求超時時間 
c.setopt(pycurl.NOPROGRESS, 1)       #屏蔽下載進度條
c.setopt(pycurl.FORBID_REUSE, 1)      #完成交互后強制斷開連接,不重用
c.setopt(pycurl.MAXREDIRS, 1)         #指定HTTP重定向的大數(shù)為1
c.setopt(pycurl.DNS_CACHE_TIMEOUT, 30)
#創(chuàng)建一個文件對象,以’wb’方式打開,用來存儲返回的http頭部及頁面內(nèi)容
indexfile = open(os.path.dirname(os.path.realpath(__file__))+"/content.txt","wb")
c.setopt(pycurl.WRITEHEADER, indexfile)  #將返回的http頭部定向到indexfile文件
c.setopt(pycurl.WRITEDATA, indexfile)    #將返回的html內(nèi)容定向到indexfile文件
c.perform()

NAMELOOKUP_TIME = c.getinfo(c.NAMELOOKUP_TIME)  #獲取DNS解析時間
CONNECT_TIME = c.getinfo(c.CONNECT_TIME)   #獲取建立連接時間
TOTAL_TIME = c.getinfo(c.TOTAL_TIME)        #獲取傳輸?shù)目倳r間
HTTP_CODE = c.getinfo(c.HTTP_CODE)     #獲取HTTP狀態(tài)碼
SIZE_DOWNLOAD = c.getinfo(c.SIZE_DOWNLOAD)   #獲取下載數(shù)據(jù)包大小
HEADER_SIZE = c.getinfo(c.HEADER_SIZE)    #獲取HTTP頭部大小
SPEED_DOWNLOAD=c.getinfo(c.SPEED_DOWNLOAD)   #獲取平均下載速度

print u"HTTP狀態(tài)碼: %s" %(HTTP_CODE)  #輸出狀態(tài)碼
print u"DNS解析時間: %.2f ms" %(NAMELOOKUP_TIME*1000)  #輸出DNS解析時間
print u"建立連接時間: %.2f ms" %(CONNECT_TIME*1000)  #輸出建立連接時間
print u"傳輸結(jié)束總時間: %.2f ms" %(TOTAL_TIME*1000)   #輸出傳輸結(jié)束總時間
print u"下載數(shù)據(jù)包大小: %d bytes/s" %(SIZE_DOWNLOAD)  #輸出下載數(shù)據(jù)包大小
print u"HTTP頭部大小: %d byte" %(HEADER_SIZE)   #輸出HTTP頭部大小
print u"平均下載速度: %d bytes/s" %(SPEED_DOWNLOAD)  #輸出平均下載速度
indexfile.close()          #關(guān)閉文件
c.close()                #關(guān)閉curl對象

f = file('chart.txt','a')     #打開一個chart.txt文件,以追加的方式
f.write(str(HTTP_CODE)+','+str(NAMELOOKUP_TIME*1000)+','+str(CONNECT_TIME*1000)+','+str(TOTAL_TIME*1000)+','+str(SIZE_DOWNLOAD/1024)+','+str(HEADER_SIZE)+','+str(SPEED_DOWNLOAD/1024)+'\n')               #將上面輸出的結(jié)果寫入到chart.txt文件
f.close()                #關(guān)閉chart.txt文件

workbook = xlsxwriter.Workbook('chart.xlsx')   #創(chuàng)建一個chart.xlsx的excel文件      
worksheet = workbook.add_worksheet()      #創(chuàng)建一個工作表對象,默認為Sheet1
chart = workbook.add_chart({'type': 'column'})  #創(chuàng)建一個圖表對象

title = [URL , u' HTTP狀態(tài)碼',u' DNS解析時間',u' 建立連接時間',u' 傳輸結(jié)束時間',u' 下載數(shù)據(jù)包大小',u' HTTP頭部大小',u' 平均下載速度']   #定義數(shù)據(jù)表頭列表

format=workbook.add_format()    #定義format格式對象
format.set_border(1)      #定義format對象單元格邊框加粗(1像素)的格式

format_title=workbook.add_format()   #定義format_title格式對象
format_title.set_border(1)   #定義format_title對象單元格邊框加粗(1像素)的格式
format_title.set_bg_color('#00FF00')  #定義format_title對象單元格背景顏色為’#cccccc’

format_title.set_align('center')   #定義format_title對象單元格居中對齊的格式
format_title.set_bold()         #定義format_title對象單元格內(nèi)容加粗的格式

worksheet.write_row(0, 0,title,format_title)    #將title的內(nèi)容寫入到第一行

f = open('chart.txt','r')          #以只讀的方式打開chart.txt文件
line = 1                   #定義變量line等于1
for i in f:                  #開啟for循環(huán)讀文件
    head = [line]           #定義變量head等于line
    lineList = i.split(',')       #將字符串轉(zhuǎn)化為列表形式
    lineList = map(lambda i2:int(float(i2.replace("\n", ''))), lineList)  #將列表中的最后\n刪除,將小數(shù)點后面的數(shù)字刪除,將浮點型轉(zhuǎn)換成整型
    lineList = head + lineList                                  #兩個列表相加
    worksheet.write_row(line, 0, lineList, format)              #將數(shù)據(jù)寫入到execl表格中
    line += 1

average = [u'平均值', '=AVERAGE(B2:B' + str((line - 1)) +')', '=AVERAGE(C2:C' + str((line - 1)) +')', '=AVERAGE(D2:D' + str((line - 1)) +')', '=AVERAGE(E2:E' + str((line - 1)) +')', '=AVERAGE(F2:F' + str((line - 1)) +')', '=AVERAGE(G2:G' + str((line - 1)) +')', '=AVERAGE(H2:H' + str((line - 1)) +')']           #求每一列的平均值
worksheet.write_row(line, 0, average, format)    #在最后一行數(shù)據(jù)下面寫入平均值
f.close()            #關(guān)閉文件

def chart_series(cur_row, line):     #定義一個函數(shù)
    chart.add_series({
        'categories': '=Sheet1!$B$1:$H$1',    #將要輸出的參數(shù)作為圖表數(shù)據(jù)標簽(X軸)
        'values':     '=Sheet1!$B$'+cur_row+':$H$'+cur_row,   #獲取B列到H列的數(shù)據(jù)        
        'line':       {'color': 'black'},           #線條顏色定義為black
        'name':    '=Sheet1!$A'+ cur_row,                  #引用業(yè)務(wù)名稱為圖例項
    })

for row in range(2, line + 1):  #從第二行開始到最后一次取文本中的行的數(shù)據(jù)系列函數(shù)調(diào)用
    chart_series(str(row), line)

chart.set_size({'width':876,'height':287})    #定義圖表的寬度及高度

worksheet.insert_chart(line + 2, 0, chart)    #在最后一行數(shù)據(jù)下面的兩行處插入圖表
workbook.close()                     #關(guān)閉execl文檔

4、運行腳本后,會在腳本所在的目錄下產(chǎn)生三個文件,兩個是txt文本文件,一個是Excel文件,執(zhí)行腳本后,會顯示如下信息:
怎么用Python采集web質(zhì)量數(shù)據(jù)到Excel表

5、當前目錄下產(chǎn)生的文件如下:
怎么用Python采集web質(zhì)量數(shù)據(jù)到Excel表

其中,兩個txt格式的文件都是為了給Excel做鋪墊的,所以可以選擇性忽略即可,主要是看Excel中的數(shù)據(jù)。Excel中的數(shù)據(jù)如下(以下是執(zhí)行6次腳本后的顯示結(jié)果,也就是說探測了6次):

怎么用Python采集web質(zhì)量數(shù)據(jù)到Excel表

“怎么用Python采集web質(zhì)量數(shù)據(jù)到Excel表”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

標題名稱:怎么用Python采集web質(zhì)量數(shù)據(jù)到Excel表-創(chuàng)新互聯(lián)
文章URL:http://muchs.cn/article12/cspggc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、品牌網(wǎng)站設(shè)計、搜索引擎優(yōu)化、網(wǎng)站策劃、做網(wǎng)站網(wǎng)站內(nèi)鏈

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司