首頁  >  文章  >  後端開發  >  Python中的爬蟲實戰:貓眼電影爬蟲

Python中的爬蟲實戰:貓眼電影爬蟲

WBOY
WBOY原創
2023-06-10 12:27:262870瀏覽

隨著網路科技的快速發展,網路上資訊的數量越來越龐大。貓眼電影作​​為國內領先的電影數據平台,為用戶提供了全面的電影資訊服務。本文將介紹如何利用Python編寫簡單的貓眼電影爬蟲,以取得電影相關數據。

  1. 爬蟲概述

爬蟲,即網路爬蟲,是自動化取得網路資料的程式。它可以透過網路上的鏈接,訪問目標網站並獲取數據,實現資訊的自動化採集。 Python是一種功能強大的程式語言,廣泛應用於資料處理、網路爬蟲、視覺化圖表等方面。

  1. 爬蟲實作

本文的貓眼電影爬蟲將透過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])
  1. 總結

本文介紹如何使用Python的requests和BeautifulSoup函式庫實作貓眼電影爬蟲。透過發送網路請求、解析HTML程式碼、保存數據等步驟,我們可以輕鬆地獲取到目標電影相關數據,並將其儲存到本地。網路爬蟲技術在資料收集、資料探勘等方面具有廣泛的應用價值,我們可以透過不斷學習來提升自己的技術水平,在實務上不斷探索。

以上是Python中的爬蟲實戰:貓眼電影爬蟲的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn