In [3]:
import requests
import csv
import pandas as pd
import matplotlib.pyplot as plt
import warnings
warnings.filterwarnings('ignore')
plt.rcParams['font.sans-serif'] = ['SimHei'] # 解决中文显示
plt.rcParams['axes.unicode_minus'] = False # 解决符号无法显示
def main():
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36', }
data = {
'r': '0.9936776079863086',
'top': '50',
'type': '0',
}
resp = requests.post(
'https://ys.endata.cn/enlib-api/api/home/getrank_mainland.do', headers=headers, data=data)
# 查看请求的详细信息
print("Complete URL:", resp.request.url)
# print("Request Body:", resp.request.body)
# print("Request Headers:", resp.request.headers)
data_list = resp.json()['data']['table0']
for item in data_list:
rank = item['Irank'] # 排名
MovieName = item['MovieName'] # 电影名称
ReleaseTime = item['ReleaseTime'] # 上映时间
TotalPrice = item['BoxOffice'] # 总票房(万)
AvgPrice = item['AvgBoxOffice'] # 平均票价
AvgAudienceCount = item['AvgAudienceCount'] # 平均场次
# 写入csv文件
csvwriter.writerow((rank, MovieName, ReleaseTime,
TotalPrice, AvgPrice, AvgAudienceCount))
print(rank, MovieName, ReleaseTime,
TotalPrice, AvgPrice, AvgAudienceCount)
def data_analyze():
# 读取数据
data = pd.read_csv('07.csv')
# 从上映时间中提取出年份
data['年份'] = data['上映时间'].apply(lambda x: x.split('-')[0])
# 各年度上榜电影总票房占比
df1 = data.groupby('年份')['总票房(万)'].sum()
plt.figure(figsize=(6, 6))
plt.pie(df1, labels=df1.index.to_list(), autopct='%1.2f%%')
plt.title('各年度上榜电影总票房占比')
plt.show()
# 各个年份总票房趋势
df1 = data.groupby('年份')['总票房(万)'].sum()
plt.figure(figsize=(6, 6))
plt.plot(df1.index.to_list(), df1.values.tolist())
plt.title('各年度上榜电影总票房趋势')
plt.show()
# 平均票价最贵的前十名电影
print(data.sort_values(by='平均票价', ascending=False)
[['年份', '电影名称', '平均票价']].head(10))
# 平均场次最高的前十名电影
print(data.sort_values(by='平均场次', ascending=False)
[['年份', '电影名称', '平均场次']].head(10))
if __name__ == '__main__':
# 创建保存数据的csv文件
with open('07.csv', 'w', encoding='utf-8', newline='') as f:
csvwriter = csv.writer(f)
# 添加文件表头
csvwriter.writerow(('排名', '电影名称', '上映时间', '总票房(万)', '平均票价', '平均场次'))
main()
# 数据分析
data_analyze()
Complete URL: https://ys.endata.cn/enlib-api/api/home/getrank_mainland.do 1 长津湖 2021-09-30 5775749383 46 22 2 战狼2 2017-07-27 5688740687 36 37 3 你好,李焕英 2021-02-12 5413299787 45 24 4 哪吒之魔童降世 2019-07-26 5035021296 36 23 5 流浪地球 2019-02-05 4687742998 45 29 6 满江红 2023-01-22 4545888463 50 24 7 唐人街探案3 2021-02-12 4522348851 48 29 8 复仇者联盟4:终局之战 2019-04-24 4250409710 49 23 9 长津湖之水门桥 2022-02-01 4069225138 49 19 10 流浪地球2 2023-01-22 4043285990 51 21 11 孤注一掷 2023-08-08 3852170171 41 18 12 红海行动 2018-02-16 3652535461 39 32 13 消失的她 2023-06-22 3526700766 42 21 14 热辣滚烫 2024-02-10 3451063674 48 22 15 唐人街探案2 2018-02-16 3397691001 39 39 16 美人鱼 2016-02-08 3397175023 37 43 17 飞驰人生2 2024-02-10 3390896165 48 19 18 抓娃娃 2024-07-16 3322281149 41 14 19 我和我的祖国 2019-09-30 3176393301 38 35 20 独行月球 2022-07-29 3104766724 42 12 21 八佰 2020-08-21 3102323833 38 20 22 我不是药神 2018-07-05 3099961643 35 27 23 中国机长 2019-09-30 2913710384 37 25 24 我和我的家乡 2020-10-01 2828956017 39 19 25 速度与激情8 2017-04-14 2670959285 37 30 26 封神第一部:朝歌风云 2023-07-20 2636076304 43 16 27 这个杀手不太冷静 2022-02-01 2629196844 48 14 28 西虹市首富 2018-07-27 2547571742 35 28 29 第二十条 2024-02-10 2451864602 46 16 30 捉妖记 2015-07-16 2441463266 37 41 31 速度与激情7 2015-04-12 2426586704 39 42 32 复仇者联盟3:无限战争 2018-05-11 2390537333 38 19 33 捉妖记2 2018-02-16 2237154621 38 44 34 疯狂的外星人 2019-02-05 2214254201 42 30 35 八角笼中 2023-07-06 2208714507 41 18 36 羞羞的铁拳 2017-09-30 2201748735 33 25 37 海王 2018-12-07 2013200124 36 18 38 熊出没·逆转时空 2024-02-10 2002470495 46 22 39 变形金刚4:绝迹重生 2014-06-27 1977522538 42 50 40 前任3:再见前任 2017-12-29 1941740154 35 29 41 毒液:致命守护者 2018-11-09 1870680440 36 17 42 长安三万里 2023-07-08 1825411425 41 19 43 功夫瑜伽 2017-01-28 1752603744 38 33 44 飞驰人生 2019-02-05 1729374300 42 25 45 人生大事 2022-06-24 1714473345 40 10 46 烈火英雄 2019-08-01 1707188998 36 19 47 阿凡达:水之道 2022-12-16 1697503373 50 8 48 侏罗纪世界2 2018-06-15 1695882459 36 19 49 寻龙诀 2015-12-18 1682742951 36 40 50 西游伏妖篇 2017-01-28 1655926405 39 36
年份 电影名称 平均票价
9 2023 流浪地球2 51
46 2022 阿凡达:水之道 50
5 2023 满江红 50
7 2019 复仇者联盟4:终局之战 49
8 2022 长津湖之水门桥 49
16 2024 飞驰人生2 48
6 2021 唐人街探案3 48
26 2022 这个杀手不太冷静 48
13 2024 热辣滚烫 48
0 2021 长津湖 46
年份 电影名称 平均场次
38 2014 变形金刚4:绝迹重生 50
32 2018 捉妖记2 44
15 2016 美人鱼 43
30 2015 速度与激情7 42
29 2015 捉妖记 41
48 2015 寻龙诀 40
14 2018 唐人街探案2 39
1 2017 战狼2 37
49 2017 西游伏妖篇 36
18 2019 我和我的祖国 35
In [ ]: