闲来无事想要了解下2018年的票房之王(国产片-内地),于是乎写了这么个小工具 先看一下结果:

没错,前三是王宝强,张译,黄景瑜,王宝强荣登票房王宝座! (票房数据来源时光网)

首先先爬取电影票房数据(时光网)

def getMovieList():'''2018年内地票房(国产片)'''movie_params = {'year': '2018','area': 'china','type': 'MovieRankingYear','category': 'china','page': 0,'display': 'list','timestamp': '1553422026885','version': '07bb781100018dd58eafc3b35d42686804c6df8d','dataType': 'json'}url = 'http://movie.mtime.com/boxoffice/'movie_list = []#总共10页数据for j in range(10):movie_params['page'] = jr = requests.get(url, params=movie_params).json()soup = BeautifulSoup(r['html'], 'lxml')movie_div = soup.find('div', {'class': 'boxofficelist'})movie_dd = movie_div.find_all('dd')for i in range(len(movie_dd)):movie_name = movie_dd[i].find('h3').texttotalnum = movie_dd[i].find_all('p', {'class': 'totalnum'})[0].textactors = movie_dd[i].find_all('p')[3].text[3:]movie_list.append((movie_name, totalnum, actors))return movie_list
复制代码

将爬取的数据保存到CSV文件中

def write_movie_dsv(movies):'''将2018内地票房(国产片)列表写入csv文件中'''header=['电影名','票房','演员']with open('movie_2018_chinalist.csv','w',newline='') as csvfile:writer=csv.writer(csvfile)writer.writerow(header)for i,movie in enumerate(movies):if (i+1)%10==0:print ('已处理{}条记录(共{}条记录)'.format(i+1,len(movies)))writer.writerow(movie)
复制代码

统计2018内地(国产片)演员的票房,并写入csv文件中

def write_actorTotalNum_dsv(movies):'''统计2018内地(国产片)演员的票房,并写入csv文件中'''movie_actors = []actor_totalnum_temp = []actor_totalnum = {}header = ['演员', '票房(亿)']with open('actor_totalnum_2018.csv', 'w', newline='') as csvfile:writer = csv.writer(csvfile)writer.writerow(header)for movie in movies:movie_actor = movie[2].split('/')for i in range(len(movie_actor)):if movie_actor[i] != '':actor_totalnum_temp.append((movie_actor[i], movie[1]))for i, j in actor_totalnum_temp:if j[-1:] == '万':actor_totalnum[i] = actor_totalnum.get(i, 0.0) + float(j[:-1]) * 0.0001else:actor_totalnum[i] = actor_totalnum.get(i, 0.0) + float(j[:-1])actor_totalnum_temp = [(k, actor_totalnum[k]) for k in actor_totalnum]actor_totalnum_temp.sort(key=lambda k: k[1], reverse=True)print(actor_totalnum_temp)for actor, totalnum in actor_totalnum_temp:writer.writerow((actor, totalnum))
复制代码

主函数

def main():'''主函数'''#获取2018内地票房(国产片)的电影列表movies = getMovieList()#将获取的2018内地票房(国产片)的电影列表写入csv文件中#write_movie_dsv(movies)#统计2018内地(国产片)演员的票房,并写入csv文件中write_actorTotalNum_dsv(movies)#统计top10电影#movie_data = pd.read_csv('movie_2018_chinalist.csv')#统计2018内地(国产片)演员票房排行榜top10actor_data=pd.read_csv('actor_totalnum_2018.csv')# top10top10_actor = actor_data.head(10)# Kind表示画什么类型图(柱状图等)top10_actor.plot(kind='bar', x='演员', y='票房(亿)', title='2018内地(国产片)演员票房排行榜top10', figsize=(20, 10))plt.savefig('top10_actor2018_bar.png')plt.show()# 保存为csv文件top10_actor.to_csv('top10_actor2018.csv', index=False)if __name__=='__main__':main()
复制代码

如果想要统计2019票房王,可以直接修改Params参数year为2019,但是下方的Page页数要根据实际情况修改为对应的页数。

转载于:https://juejin.im/post/5cdd1052e51d453b1f03ade8

Python编写小工具之统计演员票房排行榜相关推荐

  1. 用Python编写小工具下载OSM路网数据

    文章来源于Python大数据分析,作者费弗里 本文对应脚本已上传至Github仓库: https://github.com/CNFeffery/DataScienceStudyNotes[1] 1 简 ...

  2. 一分钟教你学会python_十分钟教你学会python编写小游戏

    原标题:十分钟教你学会python编写小游戏 看过,估计大家都已经精通了吧,好的,话不多说,今天就活学活用,用python来编写纸牌游戏21点,江湖人称黑杰克,BLACK JACK-(注意法式卷舌). ...

  3. python 处理数据小工具_用Python这个小工具,一次性把论文作图与数据处理全部搞定!...

    原标题:用Python这个小工具,一次性把论文作图与数据处理全部搞定! 一入科研深似海-- 随着大学纷纷开学,"防脱发用生姜还是黑芝麻?", 研究僧们又开始为自己所剩无几的头发发愁 ...

  4. python编写小游戏17_十分钟教你学会python编写小游戏

    原标题:十分钟教你学会python编写小游戏 看过,估计大家都已经精通了吧,好的,话不多说,今天就活学活用,用python来编写纸牌游戏21点,江湖人称黑杰克,BLACK JACK-(注意法式卷舌). ...

  5. 有关Python的小工具 - picture

    有关Python的小工具 - picture 读取图片 通过cv2.imread读取图片 通过cv2.imread读取比特流 通过Image.open读取图片 通过io.BytesIO读取比特流 保存 ...

  6. python小应用之整理手机图片_用Python这个小工具,一次性把论文作图与数据处理全部搞定!...

    整理完这些资料已经凌晨3点了,困得眼睛都睁不开,一想到明天就截稿了,他只好随便拼凑一篇应付. 结果可想而知,导师还没看完第一页就把论文给退回来了,说论文通篇缺乏具体数据分析,研究计划就很粗糙,实施起来 ...

  7. python自动翻译小工具_Python实现翻译小工具

    一.背景 利用Requests模块获取有道词典web页面的post信息,BeautifulSoup来获取需要的内容,通过tkinter模块生成gui界面. 二.代码 git源码地址 Python实现翻 ...

  8. python 上传excel_简历批量合并Python+VBA小工具

    每年的校招,才是对招聘系统体验的真正大考. 如何帮HR快速标记.筛选成千上万的简历? 如何快速应答同学们的问询? 群面如何签到?如何自动分组? 怎样让候选人清楚面试流程与候场时间? 如何让面试官方便地 ...

  9. python趣味小工具,图片转Execl,图片转TXT工具

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. WHJWNAVY | 作者 Demo大师 | 来源 python 趣味实用 ...

最新文章

  1. laravel 如何自定义全局的方法/类
  2. 电力系统继电保护第二版张保会_《继电保护》复习笔记
  3. 2.3 Logistic 回归损失函数-深度学习-Stanford吴恩达教授
  4. bugku——分析(流量分析)题解
  5. 接口入参形式_花椒测试平台 接口篇
  6. 渲染终极者 finalRender R3.5 SE for 3ds max/design 2009/2010/2011 32位/64位 汉
  7. 文件I0通用的IO模型
  8. vsftpd默认用户名/密码
  9. 2014年考研英语一翻译知识点
  10. 小甲鱼OD学习第15-16讲
  11. 阶段3-团队合作\项目-网络安全传输系统\sprint3-账号管理子系统设计\第2课-账号管理子系统设计...
  12. 从今天起开始进一步学习前端
  13. 【动态规划】牛客网:礼物的最大价值(数塔问题)
  14. php论坛学习的一个遍历的问题(学习)
  15. EverNote 极致的免费笔记资料管理软件 (数据网络同步、支持PC、Mac与手机多平台) 转自:http://www.iplaysoft.com/evernote.html
  16. 深度探索C++对象模型-Data语义学
  17. NXP RT1052 eFlexPWM—灵活的增强型 PWM
  18. 在控制台打印不完整的解决问题
  19. vue吸管拾色器、利用canvas获取坐标点颜色、canvas获取坐标点颜色图片跨域、图片转base64、colorPicker
  20. Weakly Supervised Deep Learning for Thoracic DiseaseClassification and Localization on Chest X-rays

热门文章

  1. 淘集集秒杀活动需要隐身上架链接吗?
  2. gbdt+LR做推荐
  3. Fake GPS-Window Mobile提供的模拟GPS工具
  4. 【毕业设计】推荐系统构建和应用 毕业设计能做哪些推荐系统
  5. Kotlin协程 - launch原理 笔记
  6. Python - smtplib 发送 Excel 邮件与数据展示
  7. Java类与对象(代码+图详解)
  8. Vue v-for循环自动换行
  9. 网络攻击之WebShell
  10. 自动化测试框架Pytest(一)——入门