python爬蟲資料儲存到本地各種格式的方法
最近爬蟲又解決了很多問題,算是儲存這部分的吧。
首先,我們如果想要抓取本地txt檔案中的內容拿到特定網址去搜索。然後爬取搜尋結果的話,這個很簡單:
f=open('C://Python27//1.txt') #只需要通過這句程式碼開啟你本地對應路徑的檔案就OK
但是如果你想要開啟excel表格呢?這裡就需要下載xlrd庫。百度搜索就可以,解壓。在cmd中進入解壓資料夾然後輸入:python setup.py install就可以呼叫了
怎麼開啟excel呢:
import xlrd
data = xlrd.open_workbook("C://Python27//2.xlsx")
table = data.sheets()[0] #進入你excel的sheet
nrows = table.nrows #行
ncols = table.ncols #列
rowValues=[]
for i in xrange(0,nrows):
rowValues.append(table.row_values(i)) #這樣就可以開啟你本地的excel了,當然,我把它儲存在了列表裡方便後面處理
讀取檔案完畢後你就呼叫你讀取的檔案資訊去網站爬蟲什麼的,具體怎麼爬這裡不做介紹了。
接下來就是爬取資料的儲存了:如果儲存到txt的話:
(1)with open('3.txt','wb') as f:
for tag in soup.find_all('div',class_='service-item-pic'):
a_url = tag.find('a').get('href')
f.write(a_url)
f.write('\n')
(2)for tag in soup.find_all('div',class_='service-item-pic'):
with open('3.txt', 'a') as f:
a_url = tag.find('a').get('href')
f.write(a_url)
f.write('\n') #注意一個是’wb,是直接寫,會覆蓋’,一個是’a,是追加,會儲存’,這兩種方法都可以,具體看你格式需要
那麼如果你想儲存到excel中的話呢?
同樣的,假如你有很多組資料,我發現上面的第二種方法不能直接儲存到已有資料的excel中,你先使用第一種之後,接下來的資料儲存在用第二種就可以,但是先使用第一種方法又會覆蓋原有資料,所以還有第三種方法:
from xlutils.copy import copy
from xlrd import open_workbook
from xlwt import easyxf
import os
excel=r'C://Python27//2.xlsx'
rb=open_workbook(excel)
wb=copy(rb) #複製原有excel
sheet=wb.get_sheet(0)
x=0
y=5
for tag in res:
sheet.write(x,y,tag)
x+=1
os.remove(excel) #刪除原有的excel表格,但是我取消了之後沒有多大作用,具體大家可以除錯看看
wb.save(excel) #這種方法需要下載xlwt,xlutils,下載安裝方法和上面的xlrd一樣,xlutils是連結xlrd和xlwt之間的橋樑,這裡的res是我之前爬下的資料
完事之後儲存成.py檔案就可以執行了