热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python教程分享Python获取时光网电影数据的实例代码

一、前言有时候觉得电影真是人类有史以来最伟大的发明,我喜欢看电影,看电影可以让我们增长见闻,学习知识。从某种角度上而言,电影凭借自身独有的魅力大大延长了人类的”寿命&r

一、前言

有时候觉得电影真是人类有史以来最伟大的发明,我喜欢看电影,看电影可以让我们增长见闻,学习知识。从某种角度上而言,电影凭借自身独有的魅力大大延长了人类的”寿命”。
一部电影如同一本故事书,我可以沉迷到其中,来的一个新的世界,跟着电影主角去经历去感悟。而好的电影是需要慢慢品尝的,不仅提供了各种视觉刺激和情感体验,更能带来思考点,也让我可以懂得在现实生活中穷尽一生也无法明白的道理。电影比书本更直接、更有趣、更精彩。
好的电影可以在潜移默化中塑造我们的三观,在电影中我们可以获得平静、满足和温和,学会坚强、勇气和努力。电影延展了无聊单调、枯燥又稀松平常的生活,让我可以在对现实生活厌倦或失望时至少有一个地方可以逃离。
正因为电影有诸多好处,并且比书本和说教能更好的塑造三观,因此,家长们可以陪同小孩看电影,鼓励孩子从电影中学会坚强和勇敢等优良品质。
既然要看看电影,就要去看优秀的作品,时光网是一个电影各方面素材都比较全面的网站,本次的项目就是要从该网站上获取到指定年份的所有电影数据,并导出成excel表格以供参考。
注意:请勿使用该技术获取网络上敏感、隐私、非公开等数据。
电影推荐(爱情类):
假如爱有天意:缘,妙不可言,或许一切早已注定。
灵魂摆渡·黄泉:为情甘愿赴死,为爱执守千年。
你的名字:世上所有的相遇都是久别重逢。
电影推荐(亲子类):
机器人总动员:孩子看到的是友情,大人看到的是爱情。很有爱的一部动画片。
寻梦环游记:死亡并不是终点,被人忘却才是真正的死亡
电影推荐(悬疑类):
小岛惊魂
异次元骇客
恐怖游轮

二、准备

2.1 安装库

requests:网络数据请求并获取,安装方式:pip install requests
threading:多线程处理(数据量比较大),python自带库,无需安装。
json:数据处理,python自带库,无需安装。
pandas:将数据导出成excel表格,安装方式:pip install pandas

2.2 原理介绍

1、先通过requests库,通过时光网自带的电影数据api接口,获取到指定的电影数据。
2、将获取到的数据经过简单的加工,通过pandas库存入到excel表格中。

三、实例

3.1 完整代码

# encoding: utf-8  # author: furongbing  # date: 2021-11-19 20:54  # project name: frbpythonfiles  # ide: pycharm  # file name: mtime  import requests  import pandas as pd  from threading import thread  import time  import json     # 模块说明:  """  从时光网上按年代获取指定年份电影的数据  """  # 更新日志:  """  1、2021-11-19:      a、完成初版  """  # 待修改:  """  """  # 请求头数据  headers = {"accept": "application/json, text/plain, */*",             "accept-encoding": "gzip, deflate",             'accept-language': 'zh-cn,zh;q=0.9',             'connection': 'keep-alive',             'content-type': 'application/x-www-form-urlencoded',             'COOKIE': '_tt_=fb8a3fad4704d42543b7ec121c2565aa; __utma=196937584.1082595229.1637326918.1637326918.1637326918.1; __utmz=196937584.1637326918.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); hm_lvt_07aa95427da600fc217b1133c1e84e5b=1637241042,1637326637,1637374129; hm_lpvt_07aa95427da600fc217b1133c1e84e5b=1637374170',             'host': 'front-gateway.mtime.com',             'origin': 'http://film.mtime.com',             'referer': 'http://film.mtime.com/',             'user-agent': 'mozilla/5.0 (windows nt 10.0; win64; x64) applewebkit/537.36 (khtml, like gecko) chrome/104.0.0.0 safari/537.36'             }  pagesize = 20  # todo 获取的每页数据条数,一般建议成默认的20就可以了,设置的太大,每页包含的数据量就大,某一条电影数据出错会导致其它数据也被抛弃。  data = []  error = []        def get_data(p_year=1987):  # 按照年份获取当年度所有的电影数据      url = 'http://front-gateway.mtime.com/mtime-search/search/unionsearch2'  # 请求的url      params = {'year': p_year, 'pagesize': pagesize, 'pageindex': 1, 'searchtype': 0}  # 请求的表单数据      # 获取当年度所有的电影的数量,继而计算要获取多少页      try:          r = requests.get(url=url, params=params, headers=headers, timeout=10)          r.encoding = r.apparent_encoding          all_data = json.loads(r.text)          moviescount = all_data['data']['moviescount']          pages = round(moviescount / pagesize)      except exception:          moviescount = 1000          pages = round(moviescount / pagesize)         # 定义变量      来源 = '时光网'      年代 = p_year      id, 中文名, 英文名, 类型, 形式, 海报url, 评分, 导演, 主演, 详情, 可播放, 国家地区, 上映日期, 片长, 票房, 观看日期 = [''] * 16         for page in range(pages):  # todo 一共要获取多少页          if page % 10 == 0:  # 每10页输出一次进度              print(f'已完成 {100 * page / pages:.2f}%')          pageindex = page + 1          params = {'year': p_year, 'pagesize': pagesize, 'pageindex': pageindex, 'searchtype': 0}  # 请求的表单数据          try:  # 获取指定页的电影数据              r = requests.get(url=url, params=params, headers=headers, timeout=10)              r.encoding = r.apparent_encoding              all_data = json.loads(r.text)              movies = all_data['data']['movies']              # 获取电影具体信息              for movie in movies:                  id = movie['movieid']                  中文名 = movie['name']                  英文名 = movie['nameen']                  类型 = movie['movietype']                  形式 = movie['moviecontenttype']                  海报url = movie['img']                  其它译名 = movie['titleotherscn']                  评分 = movie['rating']                  导演 = movie['directors']                  主演 = movie['actors']                  详情 = movie['href']                  可播放 = movie['canplay']                  国家地区 = movie['locationname']                  上映日期 = movie['realtime']                  片长 = movie['length']                  info = [来源, 年代, id, 中文名, 英文名, 类型, 形式, 海报url, 其它译名, 评分, 导演, 主演, 详情, 可播放, 国家地区, 上映日期, 片长, 票房, 观看日期]                  data.append(info)          except exception as err:              er_year, er_pagesize, er_pageindex, er_msg = p_year, pagesize, pageindex, err              error.append([er_year, er_pagesize, er_pageindex, er_msg])              print(f"出错啦,出错年份:{p_year},pagesize:{pagesize},page:{pageindex},出错原因:{er_msg}")              continue        if __name__ == '__main__':      begin = time.perf_counter()      threads = []      for year in range(2020, 2021):  # todo 此处可以自定义要获取的年份          t = thread(target=get_data, args=(year,))          threads.append(t)          t.start()      for t in threads:          t.join()         with open('error.txt', 'w', encoding='utf-8') as f:          f.write(str(error))         data.insert(0, ['来源', '年代', 'id', '中文名', '英文名', '类型', '形式', '海报url', '其它译名', '评分', '导演', '主演', '详情', '可播放', '国家地区', '上映日期', '片长', '票房', '观看日期'])      df = pd.dataframe(data)      df.to_excel(excel_writer=r'film.xlsx', sheet_name='sheet1', index=none, header=false)  # todo film.xlsx为最后保存的文件名         end = time.perf_counter()      runtime = end - begin      print(f'运行时长:{runtime:.3f}秒。') 

输出结果:

已完成 0.00%
已完成 11.63%
已完成 23.26%
已完成 34.88%
已完成 46.51%
已完成 58.14%
已完成 69.77%
已完成 81.40%
已完成 93.02%
运行时长:27.906秒。

虽然示例中获取的是2020年的数据,但是由于代码中采用的是多线程,所以如果是获取一段时间的数据时耗费的时间也和这个差不多。
最后保存到excel中的数据如下:

Python获取时光网电影数据的实例代码

从自动化办公到智能化办公

到此这篇关于python获取时光网电影数据的文章就介绍到这了,更多相关python时光网电影内容请搜索<编程笔记>以前的文章或继续浏览下面的相关文章希望大家以后多多支持<编程笔记>!

需要了解更多python教程分享Python获取时光网电影数据的实例代码,都可以关注python教程分享栏目&#8212;编程笔记


推荐阅读
  • 基于dlib的人脸68特征点提取(眨眼张嘴检测)python版本
    文章目录引言开发环境和库流程设计张嘴和闭眼的检测引言(1)利用Dlib官方训练好的模型“shape_predictor_68_face_landmarks.dat”进行68个点标定 ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • Python操作MySQL(pymysql模块)详解及示例代码
    本文介绍了使用Python操作MySQL数据库的方法,详细讲解了pymysql模块的安装和连接MySQL数据库的步骤,并提供了示例代码。内容涵盖了创建表、插入数据、查询数据等操作,帮助读者快速掌握Python操作MySQL的技巧。 ... [详细]
  • Python实现变声器功能(萝莉音御姐音)的方法及步骤
    本文介绍了使用Python实现变声器功能(萝莉音御姐音)的方法及步骤。首先登录百度AL开发平台,选择语音合成,创建应用并填写应用信息,获取Appid、API Key和Secret Key。然后安装pythonsdk,可以通过pip install baidu-aip或python setup.py install进行安装。最后,书写代码实现变声器功能,使用AipSpeech库进行语音合成,可以设置音量等参数。 ... [详细]
  • 开源Keras Faster RCNN模型介绍及代码结构解析
    本文介绍了开源Keras Faster RCNN模型的环境需求和代码结构,包括FasterRCNN源码解析、RPN与classifier定义、data_generators.py文件的功能以及损失计算。同时提供了该模型的开源地址和安装所需的库。 ... [详细]
  • Python已成为全球最受欢迎的编程语言之一,然而Python程序的安全运行存在一定的风险。本文介绍了Python程序安全运行需要满足的三个条件,即系统路径上的每个条目都处于安全的位置、"主脚本"所在的目录始终位于系统路径中、若python命令使用-c和-m选项,调用程序的目录也必须是安全的。同时,文章还提出了一些预防措施,如避免将下载文件夹作为当前工作目录、使用pip所在路径而不是直接使用python命令等。对于初学Python的读者来说,这些内容将有所帮助。 ... [详细]
  • 本文介绍了协程的概念和意义,以及使用greenlet、yield、asyncio、async/await等技术实现协程编程的方法。同时还介绍了事件循环的作用和使用方法,以及如何使用await关键字和Task对象来实现异步编程。最后还提供了一些快速上手的示例代码。 ... [详细]
  • 在本教程中,我们将看到如何使用FLASK制作第一个用于机器学习模型的RESTAPI。我们将从创建机器学习模型开始。然后,我们将看到使用Flask创建AP ... [详细]
  • Django + Ansible 主机管理(有源码)
    本文给大家介绍如何利用DjangoAnsible进行Web项目管理。Django介绍一个可以使Web开发工作愉快并且高效的Web开发框架,能够以最小的代价构建和维护高 ... [详细]
  • YOLOv7基于自己的数据集从零构建模型完整训练、推理计算超详细教程
    本文介绍了关于人工智能、神经网络和深度学习的知识点,并提供了YOLOv7基于自己的数据集从零构建模型完整训练、推理计算的详细教程。文章还提到了郑州最低生活保障的话题。对于从事目标检测任务的人来说,YOLO是一个熟悉的模型。文章还提到了yolov4和yolov6的相关内容,以及选择模型的优化思路。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • python中安装并使用redis相关的知识
    本文介绍了在python中安装并使用redis的相关知识,包括redis的数据缓存系统和支持的数据类型,以及在pycharm中安装redis模块和常用的字符串操作。 ... [详细]
  • 通过Anaconda安装tensorflow,并安装运行spyder编译器的完整教程
    本文提供了一个完整的教程,介绍了如何通过Anaconda安装tensorflow,并安装运行spyder编译器。文章详细介绍了安装Anaconda、创建tensorflow环境、安装GPU版本tensorflow、安装和运行Spyder编译器以及安装OpenCV等步骤。该教程适用于Windows 8操作系统,并提供了相关的网址供参考。通过本教程,读者可以轻松地安装和配置tensorflow环境,以及运行spyder编译器进行开发。 ... [详细]
  • Window10+anaconda+python3.5.4+ tensorflow1.5+ keras(GPU版本)安装教程 ... [详细]
  • 第七课主要内容:多进程多线程FIFO,LIFO,优先队列线程局部变量进程与线程的选择线程池异步IO概念及twisted案例股票数据抓取 ... [详细]
author-avatar
JUN-围脖
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有