返回

Python 抓取猫眼电影 TOP100 数据

人工智能

从猫眼电影抓取 TOP100 数据:Python 指南

简介

猫眼电影是中国领先的电影票房数据平台,提供电影上映信息、票房数据和观众评论。对于电影爱好者、数据分析师和营销人员来说,掌握如何从猫眼电影获取数据至关重要。本指南将一步步教你如何使用 Python 抓取猫眼电影 TOP100 数据,包括电影名称、评分、演员和导演等信息。

抓取过程

1. 安装必要的 Python 库

在开始抓取之前,你需要安装以下 Python 库:

  • requests:用于发送 HTTP 请求
  • re:用于正则表达式
  • Pandas:用于数据整理和分析

2. 发送 GET 请求

使用 requests 库向猫眼电影 TOP100 页面发送 GET 请求,获取 HTML 代码。

import requests

url = 'https://maoyan.com/board/4'
response = requests.get(url)
html = response.text

3. 提取数据

使用正则表达式从 HTML 代码中提取所需的数据:

  • 电影名称: <p class="name">.*?<a href=".*?" title=".*?">(.*?)</a></p>
  • 电影评分: <p class="score"><i class="integer">(.*?)</i><i class="fraction">(.*?)</i></p>
  • 电影演员: <p class="star">(.*?)</p>
  • 电影导演: <p class="director">(.*?)</p>

4. 整理数据

使用 Pandas 将提取的数据整理成一个结构化的表格:

import pandas as pd

data = {'电影名称': movie_names, '电影评分': movie_scores, '电影演员': movie_casts, '电影导演': movie_directors}
df = pd.DataFrame(data)

导出数据

最后,你可以将整理好的数据导出为 CSV 或 Excel 文件:

df.to_csv('cat_eye_top_100.csv')
df.to_excel('cat_eye_top_100.xlsx')

代码示例

以下完整的 Python 脚本将执行抓取和整理过程:

import requests
import re
import pandas as pd

url = 'https://maoyan.com/board/4'
response = requests.get(url)
html = response.text

movie_names = re.findall(r'<p class="name">.*?<a href=".*?" title=".*?">(.*?)</a></p>', html)
movie_scores = re.findall(r'<p class="score"><i class="integer">(.*?)</i><i class="fraction">(.*?)</i></p>', html)
movie_casts = re.findall(r'<p class="star">(.*?)</p>', html)
movie_directors = re.findall(r'<p class="director">(.*?)</p>', html)

data = {'电影名称': movie_names, '电影评分': movie_scores, '电影演员': movie_casts, '电影导演': movie_directors}
df = pd.DataFrame(data)

df.to_csv('cat_eye_top_100.csv')
df.to_excel('cat_eye_top_100.xlsx')

常见问题解答

Q1:我可以在其他电影类别中使用此脚本吗?
A: 是的,你可以修改 URL 以抓取不同类别的电影,例如国产电影、进口电影或动画电影。

Q2:我可以自定义导出的数据格式吗?
A: 是的,你可以使用 Pandas 的 to_json()to_html() 方法将数据导出为其他格式。

Q3:如何处理缺失数据或错误数据?
A: 你可以使用 Pandas 的 fillna()dropna() 方法来处理缺失数据,以及 astype() 方法来转换错误数据类型。

Q4:我可以抓取实时数据吗?
A: 否,此脚本抓取的是静态页面上的数据。要抓取实时数据,你需要使用猫眼电影提供的 API 或其他数据源。

Q5:我可以使用此脚本抓取其他电影网站的数据吗?
A: 是的,只要你了解目标网站的 HTML 结构并调整正则表达式即可。