20232218 张均钰 2023-2024-2 《Python程序设计》实验四报告
课程:《Python程序设计》
班级: 2322班
姓名: 张均钰
学号: 20232218
实验教师:王志强
实验日期:2024年5月15日
必修/选修: 公选课
1.实验内容
【1】实验整体内容:
Python综合应用:爬虫、数据处理、可视化、机器学习、神经网络、游戏、网络安全等。
(1)编写从社交网络爬取数据,实现可视化舆情监控或者情感分析。
(2)利用公开数据集,开展图像分类、恶意软件检测等
(3)利用Python库,基于OCR技术实现自动化提取图片中数据,并填入excel中。
(4)爬取天气数据,实现自动化微信提醒
(5)利用爬虫,实现自动化下载网站视频、文件等。
(6)编写小游戏:坦克大战、贪吃蛇、扫雷等等
注:在Windows/Linux系统上使用VIM、PDB、IDLE、Pycharm等工具编程实现。
【2】本实验聚焦内容:
(1)编写从社交网络爬取数据,实现自动化提取数据,并填入excel中。
2. 实验过程及结果
利用爬虫技术实现豆瓣电影名称等信息的爬取,并存于excel表格中
实验四过程:
(1)实验设计原因:
有的人平时对电影有着很大的需求,却烦恼于对电影重复无意义的翻找,针对这种情况,我利用爬虫技术实现了对豆瓣电影名称等信息的爬取,存于excel表格中,方便查看电影的信息,便于更好的电影查找与观赏体验
(2)实验设计思路:
第一部分:库函数安装:
- requests库函数:用于发送HTTP请求。
- BeautifulSoup库函数:用于解析HTML内容。
- re库函数:用于引入正则表达式
- xlwt库函数:用于创建excel表
-
import urllib.request, urllib.error
-
from bs4 import BeautifulSoup
-
import xlwt
-
import re
第二部分:主要内容设计:
1-设置目标URL并获取页面内容:
- baseurl:定义了豆瓣的网址。
- askURL()函数:获取网页内容。
- getData()函数:用来爬取网页信息
-
baseurl = "https://movie.douban.com/top250?start="
-
def getData(baseurl)
-
def askURL(url)
2-使用BeautifulSoup解析HTML:
- BeautifulSoup(html, 'html.parser'):创建一个BeautifulSoup对象,用于解析HTML。
soup = BeautifulSoup(html, "html.parser")
3-提取排行榜数据:
4-创建并操作Excel文件:
-
book = xlwt.Workbook(encoding="utf-8",style_compression=0) 创建workbook对象
-
sheet = book.add_sheet('豆瓣电影Top250', cell_overwrite_ok=True) 创建工作表
-
col = ("电影详情链接","图片链接","影片中文名","影片外国名","评分","评价数","概况","相关信息")列名
-
sheet.write(i+1,j,data[j]) 写入数据
-
book.save(savepath) 保存文件
5-输出提示信息:
- print('爬取完毕!'):在控制台输出提示信息,告知用户数据已保存。
6-正则表达式的建立:
(3)函数的构造
1.def askURL(url):该函数获取了网页的url内容
2.def getData(baseurl):该函数从获取的内容中提取了所需的信息
3.def saveData(datalist,savepath):该函数将信息保存至创建的excel表中
实验四结果:
(1)成功爬取豆瓣电影,并将其存储于excel表格中,实现可视化。
演示视频:
3. 实验过程中遇到的问题和解决过程
-
问题1:安装库函数问题,部分库函数不清楚应该使用怎样的命令去安装。
-
问题1解决方案:在CSDN上查找了相关的资料后,了解的在本实验中代码所需要的库函数的安装方式
-
问题2:在某些库函数通过终端安装后,无法正常使用
-
问题2解决方案:库函数安装后,会显示库函数被存放的位置,应该将代码放在库函数所安装的文件夹内, 保证代码可以识别到库函数的存在,不会出现报错现象。
-
问题3:对于电影数据的爬取,实验预期希望能将数据存在excel表格,但是在本实验代码实现过程中,代码出现报错现象。
-
问题3解决方案:实现终端输出以及excel的输出,在CSDN了解并借鉴excel所需要使用的库函数以及代码的书写方式。
4. 其他(感悟、思考等)
【1】实验四感悟:
在进行爬虫实验的过程中,我学到了很多东西。首先是关于网络通信和HTML解析的知识,了解了HTTP协议、请求与响应、网页结构等基础内容。其次是编程技能的提升,编写爬虫程序需要熟练掌握至少一种编程语言,同时还需要具备良好的代码风格和调试能力。另外,还需要了解网站的反爬虫机制,学会应对各种反爬虫手段,确保爬虫程序能够稳定高效地运行。
爬虫实验获取到的原始数据通常需要经过清洗和整理,才能够用于后续的分析工作。因此,我学会了使用各种数据处理工具和技术,如正则表达式、XPath、Beautiful Soup等,以及数据存储和管理技术,如数据库、文件存储等。
爬虫实验让我掌握了实用的技能,拓展了我的视野,让我更加深入地了解了网络世界和数据科学的奥秘。
【2】课程感想体会、意见及建议:
1-感想体会:课程结束之后,我对python课程深有体会,首先,参加Python课程是一个非常重要的决定,老师上的课清晰易懂,内容量丰富,让我对python的了解更加深入,培养了我的编程能力和解决问题的能力,为我未来的学习和工作奠定了良好的基础。
2-意见与建议:希望老师能在课上提出更多问题与同学们互动,这样可以加深同学们对python的印象。