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毕竟不同于理论课程,是需要自己的不断尝试、学习、积累经验,才能够不断的进步,成长。

  这门课程也锻炼了我的自学能力,俗话说:“师傅领进门,修行在个人”,我们不可能指望老师对我们的每一个疑惑进行细致的讲解,我们更多的是自己寻找资料,自己去解决自己的疑惑。自现在这个网络信息量爆炸的时代,想要找到自己想要的信息和知识简直是易如反掌,这也为我们的进步提供充足的机会。

 

posted @ 2021-06-29 21:10  张吉昱  阅读(111)  评论(0编辑  收藏  举报