中文字幕第五页-中文字幕第页-中文字幕韩国-中文字幕最新-国产尤物二区三区在线观看-国产尤物福利视频一区二区

python如何將爬取內(nèi)容存入Excel-創(chuàng)新互聯(lián)

這篇文章主要介紹python如何將爬取內(nèi)容存入Excel,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

成都創(chuàng)新互聯(lián)公司是一家專業(yè)提供雙流企業(yè)網(wǎng)站建設,專注與網(wǎng)站設計制作、成都網(wǎng)站制作、H5響應式網(wǎng)站、小程序制作等業(yè)務。10年已為雙流眾多企業(yè)、政府機構等服務。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設計公司優(yōu)惠進行中。

代碼:

# coding=UTF-8
'''
 function:爬取豆瓣top250的電影信息,并寫入Excel文件
'''
import requests
import re
from openpyxl import workbook # 寫入Excel表所用
from openpyxl import load_workbook # 讀取Excel表所用
from bs4 import BeautifulSoup as bs
import os
os.chdir('C:\Users\Administrator\Desktop') # 更改工作目錄為桌面
 
 
def getHtml(src):
 html = requests.get(src).content
 getData(html, src) # 首頁鏈接和其他頁不同,所以單獨獲取信息
 urls = re.findall('href="(.*filter=?)', html) # re獲取獲取跳轉鏈接的href
 for u in range(len(urls) - 2): # 匹配到的跳轉鏈接最后兩個重復,需去掉
  next_url = 'https://movie.douban.com/top250' + urls[u]
  html = requests.get(next_url).content
  getData(html, next_url)
 
 
def getData(html, num_url): # html:網(wǎng)頁源碼 ,num_url:頁面鏈接
 global ws # 全局工作表對象
 Name = [] # 存儲電影名
 Dr = [] # 存儲導演信息
 Ma = [] # 存儲主演信息
 Si = [] # 存儲簡介
 R_score = [] # 存儲評分
 R_count = [] # 存儲評論人數(shù)
 R_year = [] # 存儲年份
 R_area = [] # 存儲地區(qū)
 R_about = [] # 存儲劇情類型
 soup = bs(html, 'lxml')
 for n in soup.find_all('div', class_='hd'):
  # ts = n.contents[1].text # 得到電影的所有名稱
  ts = n.contents[1].text.strip().split('/')[0] # 得到電影中文名
  Name.append(ts)
 for p in soup.find_all('p', class_=''):
  infor = p.text.strip().encode('utf-8') #此處用utf-8編碼,以免下面查找 ‘主演'下標報錯
  ya = re.findall('[0-9]+.*\/?', infor)[0] # re得到年份和地區(qū)
  R_year.append(ya.split('/')[0]) # 得到年份
  R_area.append(ya.split('/')[1]) # 得到地區(qū)
  R_about.append(infor[infor.rindex('/') + 1:]) # rindex函數(shù)取最后一個/下標,得到劇情類型
  try:
   sub = infor.index('主演') # 取得主演下標
   Dr.append(infor[0:sub].split(':')[1]) # 得到導演信息
   mh = infor[sub:].split(':')[1] # 得到主演后面的信息
   Ma.append(re.split('[1-2]+', mh)[0]) # 正則切片得到主演信息
  except:
   print '無主演信息'
   Dr.append(infor.split(':')[1].split('/')[0])
   Ma.append('無介紹...')
 for r in soup.find_all('div', class_='star'):
  rs = r.contents # 得到該div的子節(jié)點列表
  R_score.append(rs[3].text) # 得到評分
  R_count.append(rs[7].text) # 得到評論人數(shù)
 for s in soup.find_all('span', 'inq'):
  Si.append(s.text) # 得到簡介
 if len(Si) < 25:
  for k in range(25 - len(Si)):
   Si.append('本頁有的電影沒簡介,建議查看核對,鏈接:' + num_url)
 
 for i in range(25): # 每頁25條數(shù)據(jù),寫入工作表中
  ws.append([Name[i], R_year[i], R_area[i], R_about[i],
     Dr[i], Ma[i], R_score[i], R_count[i], Si[i]])
 
 
if __name__ == '__main__':
 # 讀取存在的Excel表測試
 #  wb = load_workbook('test.xlsx') #加載存在的Excel表
 #  a_sheet = wb.get_sheet_by_name('Sheet1') #根據(jù)表名獲取表對象
 #  for row in a_sheet.rows: #遍歷輸出行數(shù)據(jù)
 #   for cell in row: #每行的每一個單元格
 #    print cell.value,
 
 # 創(chuàng)建Excel表并寫入數(shù)據(jù)
 wb = workbook.Workbook() # 創(chuàng)建Excel對象
 ws = wb.active # 獲取當前正在操作的表對象
 # 往表中寫入標題行,以列表形式寫入!
 ws.append(['電影名', '年份', '地區(qū)', '劇情類型', '導演', '主演', '評分', '評論人數(shù)', '簡介'])
 src = 'https://movie.douban.com/top250'
 getHtml(src)
 wb.save('test2.xlsx') # 存入所有信息后,保存為filename.xlsx

代碼中已有不少注釋,這里說下爬取過程中遇到的小問題。

1.soup的contents方法,返回的是某標簽下的子節(jié)點列表,但剛開始總是取不到想要的值,輸出其長度后,有些傻眼..TM什么情況?有這么多的子節(jié)點嗎?較真的我又去數(shù)了幾遍,最后發(fā)現(xiàn),它竟然連"換行"都算作是子節(jié)點!莫名地有點方...不知各位有沒有遇到過。

python如何將爬取內(nèi)容存入Excel

如圖,我按列表下標標記,0,2,4,6,8是換行,但也被算作子節(jié)點...

2.還是contents方法,代碼中的 '#得到電影所有名稱' 處的代碼 n.contents[1]獲取的除了a標簽外,還有其下的span標簽,這是為何?它們算一個整體?

python如何將爬取內(nèi)容存入Excel

3.對如下圖的電影信息處理時,出現(xiàn)了幾處錯誤,原因有以下幾點:

(1)部分電影沒有主演信息...

(2)主演信息為這樣'主演: ',就一個主演字樣,無內(nèi)容

(3)部分電影沒有簡介

(4)當主演信息中沒有'...'時,獲取主演信息受阻

 解決方案:(1)(2)都是主演問題,判斷是否存在即可。(我以捕獲異常處理)

(3)是簡介問題,我無法給出具體哪部電影沒有簡介,但給了該電影所在的頁面鏈接,可訪問核查。(貌似有點笨)

(4)獲取受阻是因為后面沒有精確定位點,最后以re.split('[1-2]+')方法解決,匹配年份第一位作為分片點

python如何將爬取內(nèi)容存入Excel

本次分享就到這兒了,最后,照舊放幾張結果圖吧。

python如何將爬取內(nèi)容存入Excel

python如何將爬取內(nèi)容存入Excel

以上是“python如何將爬取內(nèi)容存入Excel”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

分享標題:python如何將爬取內(nèi)容存入Excel-創(chuàng)新互聯(lián)
文章分享:http://www.2m8n56k.cn/article22/ccehjc.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站自適應網(wǎng)站響應式網(wǎng)站網(wǎng)站導航App開發(fā)網(wǎng)站改版

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:[email protected]。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設
主站蜘蛛池模板: 广东毛片| tube69xxx最新片 | 国产乱码精品一区二区三区四川人 | 91一区二区视频 | 99视频在线看观免费 | 色香欲综合成人免费视频 | 毛片大片免费看 | 制服丝袜怡红院 | 亚洲成人免费观看 | 亚洲综合国产精品 | 国产夫妇肉麻对白 | 亚洲综合色就色手机在线观看 | 精品中文字幕在线 | 亚洲精品在线视频观看 | a级毛片毛片免费观看永久 a级毛片毛片免费很很综合 | 久久国产午夜精品理论片34页 | 久久视频在线播放视频99re6 | 成人精品国产 | 欧美在线视频免费 | 亚洲男人的天堂久久香蕉 | 91精品国产综合久久香蕉 | 中文日韩字幕一区在线观看 | 亚洲精品久 | 一级做a爱片特黄在线观看免费看 | 91成人精品 | 亚洲第一网站免费视频 | 国产成人教育视频在线观看 | 伊人色综合久久天天人手人停 | 国产大片免费天天看 | 国产一区二区三区四区在线 | 久久久久亚洲精品影视 | 国产一级视频播放 | 亚洲天堂欧美 | 欧美久在线观看在线观看 | 色婷婷激婷婷深爱五月老司机 | 久草在线资源 | 久久91精品国产一区二区 | 台湾黄三级高清在线观看播放 | 一区二区三区视频观看 | 国产极品喷水视频jk制服 | 香蕉网站狼人久久五月亭亭 |