通過網絡爬蟲爬取信息后,我們一般是將內容存入txt文件或者數據庫中,也可以寫入Excel文件中,這里介紹關於使用Excel文件保存爬取到的網頁數據的簡單實現方法。
必要的第三方庫:requests、beautifulsoup4、xlwt。
先來看看通過使用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°reefrom=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刪除。