隨著網路科技的快速發展,網路上資訊的數量越來越龐大。貓眼電影作為國內領先的電影數據平台,為用戶提供了全面的電影資訊服務。本文將介紹如何利用Python編寫簡單的貓眼電影爬蟲,以取得電影相關數據。
爬蟲,即網路爬蟲,是自動化取得網路資料的程式。它可以透過網路上的鏈接,訪問目標網站並獲取數據,實現資訊的自動化採集。 Python是一種功能強大的程式語言,廣泛應用於資料處理、網路爬蟲、視覺化圖表等方面。
本文的貓眼電影爬蟲將透過Python的requests和BeautifulSoup庫實現。 Requests是Python HTTP庫,可以輕鬆傳送網頁請求,而BeautifulSoup是Python的HTML解析庫,可以快速解析HTML頁面。在開始之前,需要安裝這兩個庫。
2.1 導入庫
開啟Python編輯器,新建一個Python檔。首先需要匯入所需的函式庫:
import requests from bs4 import BeautifulSoup import csv
2.2 建立請求連結
接下來建立請求連結。打開貓眼電影網站,找到目標電影的鏈接,並將其複製下來。這裡以電影《唐人街探案3》為例:
url = 'https://maoyan.com/films/1250952'
2.3 發送請求
創建headers,設定請求頭訊息,頭資訊一般包含User-Agent、Referer、Cookie等訊息,模擬實際瀏覽器存取網頁的請求方式。這裡以Chrome瀏覽器為例。接著使用requests庫發送請求,取得網頁HTML程式碼:
headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0;Win64) AppleWebkit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3' } response = requests.get(url,headers=headers) html = response.text
2.4 解析HTML程式碼
將取得到的HTML程式碼轉換為BeautifulSoup對象,使用BeautifulSoup庫解析HTML程式碼,取得目標資料。由於貓眼電影網站HTML程式碼結構較為複雜,需要深入掌握HTML和BeautifulSoup的相關知識。
soup = BeautifulSoup(html,'html.parser') movie_title = soup.find('h1',class_='name').text movie_info = soup.find_all('div',class_='movie-brief-container')[0] movie_type = movie_info.find_all('li')[0].text movie_release_data = movie_info.find_all('li')[2].text movie_actors = movie_info.find_all('li')[1].text movie_score = soup.find('span',class_='score-num').text
2.5 儲存資料
處理完HTML頁面之後,需要將取得到的資料儲存到本機。這裡使用Python的csv函式庫來儲存資料。 csv庫可以將資料轉換為CSV格式,方便後續處理。
with open('movie.csv','w',newline='',encoding='utf-8-sig') as csvfile: writer = csv.writer(csvfile) writer.writerow(['电影名称',movie_title]) writer.writerow(['电影类型',movie_type]) writer.writerow(['上映日期',movie_release_data]) writer.writerow(['演员阵容',movie_actors]) writer.writerow(['豆瓣评分',movie_score])
整個程式碼如下:
import requests from bs4 import BeautifulSoup import csv url = 'https://maoyan.com/films/1250952' headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0;Win64) AppleWebkit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3' } response = requests.get(url,headers=headers) html = response.text soup = BeautifulSoup(html,'html.parser') movie_title = soup.find('h1',class_='name').text movie_info = soup.find_all('div',class_='movie-brief-container')[0] movie_type = movie_info.find_all('li')[0].text movie_release_data = movie_info.find_all('li')[2].text movie_actors = movie_info.find_all('li')[1].text movie_score = soup.find('span',class_='score-num').text with open('movie.csv','w',newline='',encoding='utf-8-sig') as csvfile: writer = csv.writer(csvfile) writer.writerow(['电影名称',movie_title]) writer.writerow(['电影类型',movie_type]) writer.writerow(['上映日期',movie_release_data]) writer.writerow(['演员阵容',movie_actors]) writer.writerow(['豆瓣评分',movie_score])
本文介紹如何使用Python的requests和BeautifulSoup函式庫實作貓眼電影爬蟲。透過發送網路請求、解析HTML程式碼、保存數據等步驟,我們可以輕鬆地獲取到目標電影相關數據,並將其儲存到本地。網路爬蟲技術在資料收集、資料探勘等方面具有廣泛的應用價值,我們可以透過不斷學習來提升自己的技術水平,在實務上不斷探索。
以上是Python中的爬蟲實戰:貓眼電影爬蟲的詳細內容。更多資訊請關注PHP中文網其他相關文章!