1. 程式人生 > >python爬蟲實戰--爬取貓眼專業版-實時票房

python爬蟲實戰--爬取貓眼專業版-實時票房

小白級別的爬蟲入門

最近閒來無事,發現了貓眼專業版-實時票房,可以看到在貓眼上映電影的票房資料,便驗證自己之前學的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檔案):

總票房:

綜合票房: