20201117张吉昱-实验四python综合实践
课程:《Python程序设计》
班级: 2011
姓名: 张吉昱
学号:20201117
实验教师:王志强
实验日期:2021年6月29日
必修/选修: 公选课
一、实验内容
Python综合应用:爬虫、数据处理、可视化、机器学习、神经网络、游戏、网络安全等。
本次实验内容:爬取B站视频排行榜前100名,并写入Excel表格中保存
二、实验过程及结果
1.爬取信息
1.1 在浏览器中相应页面打开开发者工具
1.2 根据提示寻找到所需的网站源代码
图中蓝色区域即为所指源代码的所属区域
在"Copy"中选择"Copy Selector"
#app > div.rank-container > div.rank-list-wrap > ul > li:nth-child(1) > div.content > div.info > a
#app > div.rank-container > div.rank-list-wrap > ul > li:nth-child(2) > div.content > div.info > a
在复制了两行源代码后,观察到两行代码仅在“li:nth-child”处有区别;
为使之后的使用不是只爬取一行代码,将复制的代码修改为:“#app > div.rank-container > div.rank-list-wrap > ul > li > div.content > div.info > a”
2.构建代码
2.1 引入库文件
bs4中的BeautifulSoup用于解析数据,xlwings如图中所示用于进行之后将数据写入Excel表格的操作
2.2 爬取信息
url即为将要爬取的网站,headers用于伪造身份,伪装成浏览器浏览页面,避免网站有反爬虫的功能
2.3 解析信息
本部分第一行代码用于对爬取到的信息进行解析,之后大量代码用于定义函数,将解析好的信息写入列表,并返回列表
2.4 写入Excel表格
本部分大致分为两部分,一是信息的写入,二是对Excel表格格式的设置。
这一部分通过xlwings实现,第一行代码用于创建新表格,第二行为命名为“B站视频排行榜前100名.xlsx”并保存到D盘中
第三行“sheet = wb.sheets.active”是选取了指定工作簿下的特定工作表,之后则是将之前函数输出的列表内的内容写入Excel表格的某一列中
往下的内容是通过xlwings的功能对Excel表格的格式进行设置,使其更加美观
进行表格的保存、关闭、Excel程序的关闭
3.运行结果
4.推送到码云
码云地址:https://gitee.com/jijixing/python.git
三、实验过程中遇到的问题和解决过程
问题1:一开始使用openpyxl尝试将信息写入Excel表格,但始终无法成功写入
问题1解决方案:在网络上了解Python中能够进行Excel表格操作的方法时,发现xlwings能够将列表内的内容写入一列或者一行,适应了之前写的代码,选择使用xlwings后,成功实现信息的写入
参考资料:
(1)https://www.cnblogs.com/lanshj/p/12723146.html
(2)https://zhuanlan.zhihu.com/p/237583143
(3)https://mp.weixin.qq.com/s?__biz=Mzg5OTU3NjczMQ==&mid=2247510458&idx=1&sn=d8aa358b76d2fa2ceffda352396297ce&chksm=c053cf4ef724465850305bea43fb9fb8382b7f7d4942fcea459734384a3f0181035adac2d84f&scene=21#wechat_redirect
(4)https://blog.csdn.net/aaahtml/article/details/114357987
四、其他
这是本学期最后一次Python的实验了,一转眼,一个学期就已经结束了。在这一学期的学习中,我感受到了Python的魅力,它是如今主流的语言,具有程序编写简洁快速、入门简单功能强大、语法表达优美易读等优点。经过一学期的学习,我已经基本了解了Python的使用,已经能够初步进行代码的编写。王老师的教学方式不是那种只注重理论教学的方法,而是理论实践相统一,既有对知识的细致讲解,通过对代码的解释和思路的说明,引导着我们进行思考,构建起自己的思路;也鼓励我们动手操作,Python毕竟不同于理论课程,是需要自己的不断尝试、学习、积累经验,才能够不断的进步,成长。
这门课程也锻炼了我的自学能力,俗话说:“师傅领进门,修行在个人”,我们不可能指望老师对我们的每一个疑惑进行细致的讲解,我们更多的是自己寻找资料,自己去解决自己的疑惑。自现在这个网络信息量爆炸的时代,想要找到自己想要的信息和知识简直是易如反掌,这也为我们的进步提供充足的机会。