爬蟲+資料匯入Excel
由於需要將服務端傳到網頁的資料做成表格,於是就有了下面一系列。。。
首先還是先說明一下,下面寫的水平只是入門,因為一個小時前,我還不知道Python原來是一門語言。。。
一、使用爬蟲獲取網頁傳回來的respond
import urllib2
response = urllib2.urlopen('http://xxxxxxxxxxxxxxx')
html = response.read()
就是這麼快,只要三句話
二、正則處理迴應資料
import re
items=[]
nums=re.findall("<td>(.*?)</td>",html)
for num in nums:
items.append(num)
在 迴應資料裡找到<td></td>中間的資料(由於網頁也屬於超簡單的那種)
然後再將提取出來的資料直接匯入列表
三、安裝(xlrd,pyExelerator)
1. 到官網下載下兩個壓縮包
2.任意資料夾下解壓
3.cmd進入該資料夾
4.分別cd進入xlrd,PyExelerator解壓後的資料夾執行 python setup.py install
安裝完畢
四、將資料匯入Excel
# -*- coding:UTF-8 -*- from pyExcelerator import * sheetTems=[] rows=0 cols=0 def excelCreate(items): icount=0 row1=1 row2=1 row221=1 w=Workbook() w1=w.add_sheet('id_1') w2=w.add_sheet('id_2') w221=w.add_sheet('id_221') sheetTems.append(w1) sheetTems.append(w2) sheetTems.append(w221) for wnum in sheetTems: wnum.write(rows,cols,u'IMEI') wnum.write(rows,cols+1,u'裝置號') wnum.write(rows,cols+2,u'伺服器接收時間') wnum.write(rows,cols+3,u'建立時間') wnum.write(rows,cols+4,u'模式') wnum.write(rows,cols+5,u'狀態') wnum.write(rows,cols+6,u'剩餘電量(%)') wnum.write(rows,cols+7,u'訊號強度') for itemp in items: if itemp=='866104028369828': w1.write(row1,cols,items[icount]) w1.write(row1,cols+1,items[icount+1]) w1.write(row1,cols+2,items[icount+2]) str1=items[icount+3] w1.write(row1,cols+3,str1[38:50]) w1.write(row1,cols+4,str1[33]) w1.write(row1,cols+5,str1[31]) w1.write(row1,cols+6,str1[34:36]) w1.write(row1,cols+7,str1[50:52]) row1+=1 elif itemp=='866104028270158': w2.write(row2,cols,items[icount]) w2.write(row2,cols+1,items[icount+1]) w2.write(row2,cols+2,items[icount+2]) str2=items[icount+3] w2.write(row2,cols+3,str2[38:50]) w2.write(row2,cols+4,str2[33]) w2.write(row2,cols+5,str2[31]) w2.write(row2,cols+6,str2[34:36]) w2.write(row2,cols+7,str2[50:52]) row2+=1 elif itemp=='866104028270109': w221.write(row221,cols,items[icount]) w221.write(row221,cols+1,items[icount+1]) w221.write(row221,cols+2,items[icount+2]) str221=items[icount+3] w221.write(row221,cols+3,str221[38:50]) w221.write(row221,cols+4,str221[33]) w221.write(row221,cols+5,str221[31]) w221.write(row221,cols+6,str221[34:36]) w221.write(row221,cols+7,str221[50:52]) row221+=1 icount+=1 #print "icount:",icount w.save(u'20161204.xls')
主要的幾個函式如下:
Workbook()開啟EXCEL add_sheet('id_1')建立表格 write(rows,cols,u'xxxx') 在某行某列寫入資料 save(u'xxxx.xls')儲存EXCEL