python爬蟲實戰--爬取貓眼專業版-實時票房
阿新 • • 發佈:2019-02-14
小白級別的爬蟲入門
最近閒來無事,發現了貓眼專業版-實時票房,可以看到在貓眼上映電影的票房資料,便驗證自己之前學的python爬蟲,爬取資料,做成.svg檔案。
爬蟲開始之前
我們先來看看貓眼專業版-實時票房這個網頁,看看我們要爬取的資料,分析網頁的結構和檢視原始碼。
(2)爬取的資料:紅框框裡面的資料就是我們想要的
(3)檢視網頁原始碼:從網頁原始碼中看到我們想要的資料並沒有存在,所以通過直接的爬蟲爬取資料,也只是獲到這部分內容(有試過),這是因為資料是動態載入的。
(4)分析資料是以什麼方式出現:檢查元素,點選network,再進行重新整理,你就會發現這時候會載入一個json檔案
,是動態來載入資料的。從檔案中我們就可以看到了我們想要爬取的資料,資料儲存在為“list”的關鍵字裡面,接下來我們每次爬取資料就只要抓取這個json檔案來進行資料的分析和處理即可
爬蟲開始
庫的選擇:BeautifuSoup、urllib.request、json、pygal
部分程式碼:
# 開啟網頁,獲取原始碼 def open_page(url): try: netword=urlopen(url) except HTTPError as hp: print(hp) else: # 採用BeautifulSoup來解析,且指定解析器 html=bs(netword,'lxml') return html # 獲取網頁資料 def get_page(url): # 電影名稱,上映天數,電影總票房,票房佔比,排片場次,排片佔比,場均人次,上座率 movieName,releaseInfo,sumBoxInfo,boxInfo,boxRate,showInfo,showRate,avgShowView,avgSeatView=[],[],[],[],[],[],[],[],[] html=open_page(url) p=html.find('p') text=p.get_text() # 將資料轉換為python能夠處理的格式 jsonObj=json.loads(text) # 獲取字典裡面特定的鍵對應的鍵值 data=jsonObj.get('data') # 想要的資料就在字典的鍵"list"對應的值 lists=data.get('list') # print(type(lists)==type([]))判斷型別 for list in lists: # 獲取字典裡面特定的鍵對應的鍵值,並存儲到列表中去 movieName.append(list.get('movieName')) releaseInfo.append(list.get('releaseInfo')) sumBoxInfo.append(list.get('sumBoxInfo')) boxInfo.append(list.get('boxInfo')) boxRate.append(list.get('boxRate')) showInfo.append(list.get('showInfo')) showRate.append(list.get('showRate')) avgShowView.append(list.get('avgShowView')) avgSeatView.append(list.get('avgSeatView')) return movieName,
就這樣吧,把要爬取的資料全部儲存到列表中去了,最終的實現結果(只是處理了兩個資料,總票房和綜合票房,做出svg檔案):
總票房:
綜合票房: