2023秋软工实践个人作业二

102102105_邱晓彤 2023-09-15 15:55:56
这个作业属于哪个课程2023秋-福州大学软件工程
这个作业要求在哪里2023秋软工实践个人作业二
这个作业的目标通过难度与关键词在洛谷爬取相关的前50道题目以及对应的第一个题解,同时保存为markdown形式,并按要求保存在相关文件夹下,同时编写单元测试进行测试,并将项目放在github上;结合过程中利用的AIGC完成表格;运用PSP表对任务进行分解
学号102102105

一、将项目放到github仓库,在博客中提交github仓库链接。

项目仓库链接

GUI页面:可以通过自己选取关键词与难度进行爬取数据

img

爬取结构的存放:文件夹以及markdown文件

img

img

img

markdowm文件展示

img

img

二、介绍项目的前端,特色的功能,以及完成项目中所用的技术、特殊的算法(实现思路)等等,可以用图表的形式展现。

反爬:更改请求头信息:有些网站通过检查请求的User-Agent等HTTP头部信息来判断是否是爬虫。可以尝试修改User-Agent信息以模拟正常浏览器的访问。使用编程语言的网络请求库时,通常可以在请求中设置自定义的User-Agent。

img

解码:此次题解需要解码 因此使用urllib.parse.unquote()进行解码

img

GUI页面:通过Tkinter库制作相应 关键词与难度可以选择也可以自己输入 同时增加了爬取的实时情况与实时更新

img


img


img

题目存在非法字符导致保存失败 在保存之前 进行字符转换

img

三、单元测试

单元测试的目的是隔离和测试程序的最小可测试单元,以便快速定位和修复问题。通过编写针对每个模块的测试用例,并在对代码进行更改或新增功能时运行这些测试用例,开发人员可以确保其代码的正确性和可靠性。
我通过编写一个减法函数进行测试,最终返回ok,表示测试单元在测试过程中表现正常,符合预期的行为。

测试样例

img

测试结果

img

三、AIGC表格

子任务预估哪些部分使用AIGC实际中哪些部分使用AIGC
GUI设计之前学过Java的GUI 觉得Python应该自己也行 不需要用到太多AIGC真的自己写的时候全忘记了 大致框架运用了AIGC 细节自己处理
题目的爬取与存储学过一点点爬虫 应该在保存格式上比较需要 爬取题目应该不太需要洛谷有反爬机制 还是得求助AIGC解决这个问题 以及markdown形式的保存
题解的爬取与存储题解的解码题解的解码以及利用cookie
单元测试单元测试代码的框架单元测试代码框架以及一些报错的解决

四、你学会了什么内容?有什么心得体会?

这次学到的东西很多!爬虫、反爬、解码、GUI页面的制作、最基本单元测试,这次的爬虫作业让我快爬不动了。在没有任何爬虫基础的情况下,爬取会反爬以及加密的网站,还有周末两天建模的压力以及其他作业的ddl,感受到了一次又一次的崩溃。最开始一道题也爬不下来,一堆搞不懂的报错;到后来经常性的302,爬多少题看它心情;接着为了找题解的标签,已经快把超级玛丽的第一个题解的源码看烂了,最后终于找到了script!!!这次学到的除了知识还有崩溃与破防,不过话写到这里作业也快完成了。
通过这次作业,发现自己会的真的好少,努努力多学一点吧,希望以后别再这么艰难了!!

五、运用PSP表格对任务进行分解,记录预估耗时和实际耗时。评价这次个人作业的完成过程和最终效果:哪里做的好,哪里还可以改进?

PSPPersonal Software Process Stages预估耗时(分钟)实际耗时(分钟)
Planning计划2010
· Estimate· 估计这个任务需要多少时间960720
· Analysis· 需求分析 (包括学习新技术)480240
· Design Spec· 生成设计文档6040
· Coding· 具体编码360450
· Test· 测试(自我测试,修改代码,提交修改)6030
· Test Repor· 测试报告3020
· 合计1010790

附加题

以图表(或其他形式)显示实时爬取情况,如吞吐量等

img

爬取题目在前端显示 每爬取一道题目会实时更新并显示爬取的题目数以及题目编号 同时实时显示爬取题目数与爬虫进程的图表

img

...全文
88 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

122

社区成员

发帖
与我相关
我的任务
社区描述
2023秋-福州大学软件工程
软件工程 高校
社区管理员
  • fzusdn
  • 篱隙光远
  • Jason_Zhou1
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧