正在學(xué)習(xí)Python如何讀寫excel文件,用到了兩個(gè)函數(shù)魂奥,xlwt和xlrd终抽,總算有一些進(jìn)展。
from xlwt import *
w = Workbook() #w必須是大寫蛛倦,此步驟創(chuàng)建了一個(gè)工作簿歌懒。
ws = w.add_sheet('xlwt was here') 此步驟創(chuàng)建了一個(gè)名字是 xlwt was here的工作表。
ws.write(0,0,'foot') # 在第1行1列的單元格(cell)中,輸入foot溯壶。注意,首行首列都是從0開始的及皂。
w.save('mini.xls')
上面的代碼能夠運(yùn)行成功,結(jié)果就是該py文件同目錄下產(chǎn)生一個(gè)mini.xls的文件且改。然后验烧,打開該文件第1行第1列里面有foot這個(gè)單詞。
第二階段又跛,我在原有的代碼上進(jìn)行了升級(jí)練習(xí)碍拆。最能能實(shí)現(xiàn)
將該貼吧中的圖片鏈接保存到我創(chuàng)建的excel文件當(dāng)中。
代碼如下:
import requests
from xlwt import *
from bs4 import BeautifulSoupurl='http://tieba.baidu.com/p/3990192462'
w=Workbook() #創(chuàng)建一個(gè)工作簿
ws=w.add_sheet('lianjie') #在創(chuàng)建好的工作簿中創(chuàng)建一個(gè)名叫l(wèi)ianjie的sheet1
style=easyxf('font:bold 1') #改變單元格樣式,加粗為例。
wb_data=requests.get(url) #開始解析網(wǎng)頁(yè)
soup=BeautifulSoup(wb_data.text,'lxml')
#獲取這個(gè)帖子下,正文中圖片鏈接感混。
links=soup.select('img.BDE_Image')
x=0 #為了控制每次for循環(huán)寫入的數(shù)據(jù)都能按照順序排到下一列端幼。這里加了一個(gè)參數(shù)。
for link in links:
clink=link.get('src')
ws.write(x,0,clink,style) #x代表行,0代表列弧满。整個(gè)語(yǔ)句就是一直在第1列,然后將下載的鏈接填寫到一行又一行的婆跑。
x=x+1
print(clink)
w.save('mini2.xls')
運(yùn)行結(jié)果如圖:(就是我想要的效果,太棒了Mノ亍)
運(yùn)行結(jié)果
第三階段滑进,再次在原有基礎(chǔ)上做了一下升級(jí)的練習(xí)。
實(shí)現(xiàn)了把4頁(yè)的貼吧帖子鏈接募谎,全部保存到本地excel文件中扶关。
代碼如下,比之前的要復(fù)雜一些数冬。
import requests
from xlwt import *
from bs4 import BeautifulSoup
url='http://tieba.baidu.com/p/3990192462?pn=1' #這是起始頁(yè),一共4頁(yè)驮审。
w=Workbook() #創(chuàng)建一個(gè)工作簿
ws=w.add_sheet('lianjie') #在創(chuàng)建好的工作簿中創(chuàng)建一個(gè)名叫l(wèi)ianjie的sheet1
style=easyxf('font:bold 1') #改變單元格樣式,加粗為例。
all_links=[]
#函數(shù)1:得到某一頁(yè)的圖片鏈接,儲(chǔ)存在all_links 當(dāng)中吉执。
def get_onepage_links(url):
wb_data = requests.get(url)
soup = BeautifulSoup(wb_data.text, 'lxml')
links = soup.select('img.BDE_Image')
for link in links:
clink = link.get('src')
all_links.append(clink)
print('done')
return all_links
# 函數(shù)2: 得到整個(gè)帖子的頁(yè)面鏈接疯淫。
def get_allpage_links(start,end=5): #得到整個(gè)帖子的頁(yè)面鏈接。
for one in range(1,5):
url2='http://tieba.baidu.com/p/3990192462?pn={}'.format(one)
get_onepage_links(url2)
return all_links
all_links2=get_allpage_links(1,5) #直接遍歷函數(shù)不行,只能轉(zhuǎn)換一下戳玫。
y=0
for x in all_links2:
ws.write(y,0,x) #r,w,value ,開始寫入數(shù)據(jù)
y=y+1
w.save('all-links.xls') #保存文件
print(all_links2)
最后熙掺,執(zhí)行程序的結(jié)果是,很讓我滿意咕宿,成功實(shí)現(xiàn)了目標(biāo)币绩。
運(yùn)行結(jié)果