Python:將爬取的網頁數據寫入Excel文件中


Python將爬取的網頁數據寫入Excel文件

通過網絡爬蟲爬取信息后,我們一般是將內容存入txt文件或者數據庫中,也可以寫入Excel文件中,這里介紹關於使用Excel文件保存爬取到的網頁數據的簡單實現方法。

 

必要的第三方庫:requestsbeautifulsoup4xlwt

 

先來看看通過使用Excel文件保存數據的一個簡單實例。

 

#導入xlwt模塊

import xlwt

#創建一個Workbook對象,即創建一個Excel工作簿

f = xlwt.Workbook()

#創建學生信息表

#sheet1表示Excel文件中的一個表

#創建一個sheet對象,命名為“學生信息”,cell_overwrite_ok表示是否可以覆蓋單元格,是Worksheet實例化的一個參數,默認值是False

sheet1 = f.add_sheet(u'學生信息',cell_overwrite_ok=True)

#標題信息行集合

rowTitle = [u'學號',u'姓名',u'性別',u'出生年月']

#學生信息行集合

rowDatas = [[u'10001',u'張三',u'',u'1998-2-3'],[u'10002',u'李四',u'',u'1999-12-12'],[u'10003',u'王五',u'',u'1998-7-8']]

#遍歷向表格寫入標題行信息

for i in range(0,len(rowTitle)):

# 其中的'0'表示行, 'i'表示列,0和i指定了表中的單元格,'rowTitle[i]'是向該單元格寫入的內容

    sheet1.write(0,i,rowTitle[i])

#遍歷向表格寫入學生信息

for k in range(0,len(rowDatas)):    #先遍歷外層的集合,即每行數據

    for j in range(0,len(rowDatas[k])): #再遍歷內層集合,j表示列數據

        sheet1.write(k+1,j,rowDatas[k][j]) #k+1表示先去掉標題行,j表示列數據,rowdatas[k][j] 插入單元格數據

#保存文件的路徑及命名

f.save('D:/WriteToExcel.xlsx')

 

在D盤對應的名為WriteToExcel.xlsx的Excel文件中,發現信息已被插入到表格中。

 

 類似地,將爬取到的數據寫入Excel文件中保存。

import requests
from bs4 import BeautifulSoup
import xlwt

def getHtml():
    #k代表存儲到Excel的行數
    k=1 
    #創建一個工作簿
    f = xlwt.Workbook()  
    #創建一個工作表
    sheet = f.add_sheet("Python相關職業招聘信息") 
    rowTitle = ['職位名', '公司名', '工作地點', '薪資', '發布時間','鏈接']
    for i in range(0,len(rowTitle)):
        sheet.write(0, i, rowTitle[i])  
   url='https://search.51job.com/list/000000,000000,0000,00,9,99,python,2,1.html?lang=c&postchannel=0000&workyear=99&cotype=99&degreefrom=99&jobterm=99&companysize=99&ord_field=0&dibiaoid=0&line=&welfare='

    #解析第1頁
    for page in range(1):
        res = requests.get(url.format(page))
        res.encoding = 'GBK'
        soup = BeautifulSoup(res.text, 'html.parser')
        t1 = soup.find_all('.t1 span a')
        t2 = soup.select('.t2 a')
        t3 = soup.select('.t3')
        t4 = soup.select('.t4')
        t5 = soup.select('.t5')
        for i in range(len(t1)):
            job = t1[i].get('title')#獲取職位名
            href = t2[i].get('href')#獲取鏈接
            company = t2[i].get('title')#獲取公司名
            location = t3[i+1].text#獲取工作地點
            salary = t4[i+1].text#獲取薪資
            date = t5[i+1].text#獲取發布日期
            print(job + " " + company + " " + location + " " + salary + " " + date + " " + href)
            f.write(k,0,job)
            f.write(k,1,company)
            f.write(k,2,location)
            f.write(k,3,salary)
            f.write(k,4,date)
            f.write(k,5,href)
            k+=1#每存儲一行 k值加1
    f.save('D:/Python相關職業招聘信息.xlsx')#寫完后調用save方法進行保存

if __name__=='__main__':
    getHtml()                   

 

 

 

 

 

打賞

免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2021 CODEPRJ.COM