课程:《Python程序设计》 班级: 1934 姓名: 简文翔 学号: 20193415 实验教师:王志强 实验日期:2021年6月15日 必修/选修:公选课
- 完成Python综合实践任务,有关爬虫、数据处理、可视化、机器学习、神经网络、游戏、网络安全等
经过反复思考,我决定结合最后几节课介绍的有关网络爬虫的内容,使用第三方库GoPUP来爬取百度指数的游戏关键词指数,并利用第三方库pyecharts制作柱状图,实现游戏热度可视化。
-
安装GoPUP
打开命令提示符,输入
-
安装pyecharts 1.1.0
打开命令提示符,输入
-
初步爬取
将登录百度指数后的cookie填入单引号中,设置关键词为“王者荣耀”,爬取2021年6月1日至2021年6月10日间的指数数据,如图所示:
爬取结果如下:
-
提取数据
根据初步爬取的结果易知,GoPUP将爬取到的数据类型为“dataframe”类型,无法直接使用 利用iterrows迭代器,每次只提取一天的数据,分别输出“item[1][0]”,这样就实现了数据的提取:
-
存入字典
新建一个列表name_list用于存放游戏关键词
新建一个字典data_baidu,用于存放6月1日至6月10日间10个游戏关键词的百度指数数据
对上述程序进行如下修改
成功将数据存入字典
-
调用所需要的库
-
将data_baidu中的数据格式化
-
绘制柱状图
-
生成时间轴实现轮播
-
效果图
数据的柱状图在6月1日至6月10日间自动跳变,可暂停,点击日期对应的圆圈可查看当日数据。纵坐标随数据大小自行变化。
-
程序代码托管到码云
Gitee代码页面
课程学习中,我们主要接触了如下Python知识:流程控制语句、序列、字符串、正则表达式、函数、面向对象程序设计、文件操作及异常处理、网络爬虫等。 通过学习,我得知了Python这门语言的定义:Python是一种高级动态、完全面向对象的语言,函数、模块、数字、字符串都是对象,并且完全支持继承、重载、派生、多继承,有益于增强源代码的复用性,具有代码少、简单、运行速度慢的特点。 Python具有如下数据类型:整数、浮点数、字符串、布尔值、空值(None)。 序列包含可变、可重复、有序的列表,不可变、可重复、有序、元素不能删除的元祖,键值对组成的字典,可以去重的集合。序列可以进行索引与切片操作。 字符串可以进行拼接、截断、分割、检索、格式化等操作;正则表达式则较为复杂,它描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。 Python中的函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。函数能提高应用的模块性,和代码的重复利用率。Python提供了许多内建函数,我们也可以自己创建用户自定义函数。 Python的类与对象由三个关键词组成:封装+继承+多态,类又等于属性+方法。 Python的模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py。模块可以被别的程序引入,以使用该模块中的函数等功能。这也是使用python标准库的方法。 而关于Python的网络编程技术,我了解到了Socket套接字技术,即端口+IP地址,这也是我其他课程所涉及到的知识。 最重要的网络爬虫,它就是一个探测机器。它的基本操作就是模拟人的行为去各个网站溜达,点点按钮,查查数据,或者把看到的信息背回来。就像一只虫子在一幢楼里不知疲倦地爬来爬去。简单来讲,就是通过程序去获取web页面上自己想要的数据,也就是自动抓取数据。关于爬虫,我只学到一点皮毛,希望以后有机会还能继续深入学习。
首先很庆幸自己选到了这门选修课。在王志强老师的Python程序设计这门选修课中,我第一次接触Python这门编程语言,以前对Python的了解仅限于道听途说,只知道这是一门上手简单、功能强大的语言,但其中蕴含的奥秘在我上课之后才得以深入了解。我个人认为这门课程所用的语言很特别很奇妙,老师也很风趣很有个性,能够帮助我们更好的了解Python这门语言真正的用途。在整个课程学习的过程中,我最大的感触就是,老师不仅是在教我们学Python,更多是把我们向“程序猿”的方向培养。 在学习Python这门课程的这段时间以来,我认识到并且学习到了很多知识。不仅如此,做Python实验的过程也是一个学习的过程,从激活专业版Pycharm到配置Gitee再到在博客园用Markdown写实验报告,全是个人经历上的第一次,能够利用的只有搜索引擎、云班课中的链接与老师的只言片语,所有东西都需要自己去搜索去学习。对于一个完美主义者与强迫症患者,写一篇实验报告往往要用不下十个小时的时间,一遍遍地编辑博客后台一遍遍地预览、调整图片尺寸、缩进段落,才能修改出勉强令自己满意的博客。 而对于王老师的这门课程,我有一点小小的建议,那就是老师现场编写代码的时候有时会写错,跟着思路走的初学者(比如我们)很容易被绕晕,要是老师的备课能更加充分、少一些报错就更完美了。 至此,Python程序设计这门课程已经圆满结束了。在这个过程之中,我交出了一份还算满意的答卷,也在多次失败的教训之中收获了许多宝贵的经验:做好提前预习,亲自动手实践,及时查漏补缺……这些经验对我将来的学习都有着很大的帮助。 最后,感谢老师的惇惇教导!您辛苦了!
-
《Python编程 从入门到实践(第二版)》
-
轻量级标记语言--Markdown
-
PyEcharts的简单使用
-
什么,3行Python代码就能获取海量数据?
-
Pyecharts V1全新版本 x轴不能完全显示的问题解决