猫眼电影Top100爬取数据(期末项目)
itomcoil 2025-07-03 15:51 5 浏览
同学A负责爬取数据存在Exel。详细如下:
1.导入会用到的库,先用win+r输入cmd,用pip工具下载库文件。导入库文件在pycharm的setting->project->Python Interpreter里面选择添加库。
2.定义scraping函数,用来爬取网页上的数据。headers为请求头,用来访问猫眼电影网站。board_urls里面的网站,用了format格式化的方法用来实现动态爬取网页,爬取第一页的所有电影,爬取第二页的所有电影,直到爬取完一百个电影的数据。
3.定义一个空列表用来存网页上所爬取到的数据,用etree.HTML来解析网页的数据存放在board_url_html里面。
4.数据处理,定义空列表来存放各个电影每个属性所对应的数据。其中star_org和relastime_org是用来存放还没有处理的数据,因为爬取到的数据中含有“主演:”
、“上映时间:”我用字符串的切片方法或者replace方法处理好数据后再存放进movie_star和releastime这两个列表中,此时数据只剩下了演员的名字和上映的时间。
用xpath找到爬取数据的位置,用extend一次性的追加写入到之前定义的空列表中,实现了数据的写入。在用一个data列表整合所有爬取到的数据,并将数据参数返回。
5.定义build_excel_file函数用来保存爬取到的数据,将刚才返回的data其中包含了所有电影的信息。用xlwt.Workbook建立一个book对象,book此时就是一个Excel文件。将它的标题设置为想要的名字入“封面链接”、“电影链接”..。将data里面的数据一行一行的写入到EXCEL文件里面,细节是内层循环是j来控制列,外层循环是i来控制行。用len(title)这种方式来写,可以方便后期扩充EXCEL表的列表名。假如我要爬取该电影的评论数,我可以直接在title的’评分’后面直接加入’评论数’,此时用len(title)会自动加一行,方便扩容。
6.主函数的流程,通过调用上述函数来实现功能。用print里面的文字可以判断程序执行到那一步了,方便进行调试。
爬取数据效果:
同学B负责数据分析和展示,详细如下:
1.导入会用到的库,先用win+r输入cmd,用pip工具下载库文件。导入库文件在pycharm的setting->project->Python Interpreter里面选择添加库。
2.条形图:用pandas库的pd.read_excel按照名字读取EXCEL里面的值到data里。data.sort_values,在data里的数据按照值来排序head(i),其中i来控制排序的个数。bar生成对象,将电影名称的值转换成列表的形式输出到条形图的上面。bar.render设置保存路径。print用来检查该代码段是否执行成功。
3.玫瑰图(饼图):data里的数据按照评分排序后存放在sctor_chart里,color_series设置颜色的系列,其中有十个值对应了排名的前十个电影。实例化Pie类pie1.add添加两个列表的值到玫瑰图里。代码中含有各配置的含义,radius代表半径,center代表圆心,title是该玫瑰图的标题。pie1.render设置保存路径。print用来检查该代码段是否执行成功。
4.词云:首先要用pip工具下载wordcloud库和numpy库,然后再pycharm里面导入库实现应用。同样的,将data.sort_values,在data里的数据按照值来排序head(i),其中i来控制排序的个数。将排序好的值存放在实例化对象w1中,设置宽度、高度、背景颜色、字体的路径。用.join链接排名前十的电影名称,中间用换行符间隔,将链接好的值存放在txt里面。w1.generate(txt),对象w1生成txt里面值的词云,w1.to_file设置保存路径。print用来检查该代码段是否执行成功。
效果如下:
相关推荐
- 麦克斯韦方程高斯-博内-陈定理嘉当外微分斯托克斯方程之间的联系
-
一、麦克斯韦方程的外微分形式1.电磁场张量的几何表示在微分几何中,电磁场由2-形式F描述,称为电磁场强形式:其中E为电场,B为磁场,dt为时间坐标。2.麦克斯韦方程的微分形式第二式(无...
- 机器视觉(四):空域图像增强(常见的空域图像增强处理方法有哪些)
-
一、图像处理技术概述1.定义对原始获取图像进行一系列的运算处理,称为图像处理。图像处理是机器视觉技术的方法基础,包括图像增强、边缘提取、图像分割、形态学处理、图像投影、配准定位和图像特征提取等方法。2...
- 基于机器视觉的安全气囊检测系统研究
-
21世纪以来,汽车行业发展迅猛。安全气囊作为汽车的安全辅助工具,它的出现大大降低了死亡率,因而必须确保其尺寸精确,并能正常使用。对安全气囊传统的检测方法主要是借助千分表、轮廓仪等工具进行人工抽检[...
- 高斯泼溅综合指南(高斯pp)
-
高斯泼溅(GaussianSplatting)是一种表示3D场景和渲染新视图的方法,在“实时辐射场渲染的3D高斯泼溅”中引入。它可以被认为是NeRF类模型的替代品,就像当年的NeRF...
- 基于DSP和ARM的电气化铁路接触线覆冰监测系统设计
-
张学武(中铁第一勘察设计院集团有限公司,陕西西安710043)摘要:为预防接触线上的冰害事故以及为除冰融冰提供支持,设计了集成视频传输、覆冰厚度测量、导线温度测量、现场微气象采集的接触线覆冰监测系...
- OpenCV 线性滤波(opencv 线性拟合)
-
OpenCV线性滤波线性滤波图像滤波与滤波器图像滤波,指的是在尽量保留图像特征的条件下对目标图像得噪声进行抑制,是图像处理当中不可缺少的部分。平滑录播室低频增强的空间域滤波技术,它的目的有两类:一类...
- 几种典型的图像去噪算法总结(图像去噪的定义)
-
(一)高斯低通滤波去噪高斯低通滤波器(GaussianLowPassFilter)是一类传递函数为高斯函数的线性平滑滤波器。又由于高斯函数是正态分布的密度函数。因此高斯低通滤波器对于去除服从正态...
- 深度解析卷积:从原理到应用(卷积到底是什么)
-
一、卷积的基本概念卷积是一种在数学领域尤其是分析数学中占据重要地位的运算方式。它通过两个函数和来生成第三个函数。设和是上的两个可积函数,卷积的积分表达式为:。在离散情况下,卷积定义为。从...
- 基于混合高斯模型的物体成分拟合方法
-
郎波,樊一娜,黄静,王鹏(北京师范大学珠海分校信息技术学院,广东珠海519087)为了寻求代价更小、效率更高、适应性更强的图像原型表征方法,借鉴成分识别理论的观点,设计出一种更符合人类认知原...
- 30天Python 入门到精通(python入门到精通书籍)
-
以下是一个为期30天的Python入门到精通学习课程,专为零基础新手设计。课程从基础语法开始,逐步深入到面向对象编程、数据处理,最后实现运行简单的大语言模型(如基于HuggingFace...
- Python 最好用的 8 个 VS Code 扩展
-
1.PythonextensionforVisualStudioCode这个扩展是由微软官方提供的,支持但不仅限于以下功能:通过Pylint或Flake8支持代码检查在VSCo...
- Textual:为 Python 增加漂亮的文本用户界面(TUI)
-
导读:如果你的代码是用Python编写的,你应该使用Textual来帮助你编写TUI(文本用户界面)。快速入门使用TextualPython在Linux上有像TkInterdocs...
- pytest框架进阶自学系列 | 常用插件的使用
-
书籍来源:房荔枝梁丽丽《pytest框架与自动化测试应用》一边学习一边整理老师的课程内容及实验笔记,并与大家分享,侵权即删,谢谢支持!附上汇总贴:pytest框架进阶自学系列|汇总_热爱编程的通...
- ShapeNet数据集及dataset代码分析
-
1.数据集简介ShpaeNet是点云中一个比较常见的数据集,它能够完成部件分割任务,即部件知道这个点云数据大的分割,还要将它的小部件进行分割。它总共包括十六个大的类别,每个大的类别有可以分成若干个小类...
- 「教程」5 分钟带你入门 kivy(怎么学kp)
-
原创:星安果AirPythonkivy语言通过编写界面UI,然后利用Python定义一些业务逻辑,可以移植很多功能模块到移动端直接执行。下面对kivy常见用法做一个汇总。1、什么是...
- 一周热门
- 最近发表
- 标签列表
-
- ps图案在哪里 (33)
- super().__init__ (33)
- python 获取日期 (34)
- 0xa (36)
- super().__init__()详解 (33)
- python安装包在哪里找 (33)
- linux查看python版本信息 (35)
- python怎么改成中文 (35)
- php文件怎么在浏览器运行 (33)
- eval在python中的意思 (33)
- python安装opencv库 (35)
- python div (34)
- sticky css (33)
- python中random.randint()函数 (34)
- python去掉字符串中的指定字符 (33)
- python入门经典100题 (34)
- anaconda安装路径 (34)
- yield和return的区别 (33)
- 1到10的阶乘之和是多少 (35)
- python安装sklearn库 (33)
- dom和bom区别 (33)
- js 替换指定位置的字符 (33)
- python判断元素是否存在 (33)
- sorted key (33)
- shutil.copy() (33)