个人第二次软工作业

本文讲述了作者在软工作业中的经历,涉及爬虫技术的反爬策略、Tkinter前端开发、使用cookie处理登录验证,以及单元测试和AIGC的应用。通过实践,作者学习了正则表达式的运用和认识到模块化设计的重要性。
摘要由CSDN通过智能技术生成

第二次软工个人作业(还在更进一步完善…)

陈昕杨 102101324

这是我的github仓库链接:https://github.com/xinyang-Grind/Homework

1.先说说遇到的困难!!

  • 最大的困难当然是还没有根本没学过爬虫TT
  • 第二大的困难是根本没学过 tkinter
  • 详细困难1:反爬机制
    利用计时器 过一段时间再爬
    或者部署虚拟ip以防止被重复识别
    time.sleep(5) 五秒钟后再进行爬取 就非常简单啦
  • 详细困难2:题解的爬取
    题解的爬取需要利用洛谷本身调用的程序接口再进行网络请求
    还有另一种方法 可以采用json格式再转化 但是效率相比上面就很低了

    得用cookie的方法

cookie = {
    'login_referer': 'https%3A%2F%2Fwww.luogu.com.cn%2Fproblem%2FP1000',
    '_uid': '115111',
    '__client_id': '4f1bbbf98dfa'd'sfadsfa6e49a6c98727320089c851c18d53c',
    'C3VK': 'aa6e71',
}

反爬结果展示

一共50条

在这里插入图片描述

标签为:入门+1

爬取结果(前50条):

在这里插入图片描述

2.前端展示

前端采用tkinter展示,用了一个比较简洁的界面进行展示,输入后点击就可以进行爬取
在这里插入图片描述

爬取结果

前端展示爬取结果

在这里插入图片描述

点击下拉框可以展示

存储结果

在这里插入图片描述

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
在这里插入图片描述

爬取md展示

在这里插入图片描述

附加

其中增加了题型与题目语言选择的选择 让我们可以更好的爬取
以及增加了黑夜配色 非常的cool !!
在这里插入图片描述

3.单元测试

在计算机编程中,单元测试(英语:Unit Testing)又称为模块测试, 是针对程序模块(软件设计的最小单位)来进行正确性检验的测试工作。 程序单元是应用的最小可测试部件。

我的理解是:测试某个具体的函数,是否符合编写者的预期。

在这里插入图片描述
比如把p2输出来也算是一种输出
在这里插入图片描述
编写单元测试类如同Test就可以测试pureCNtext的函数是否正常

4.AIGC表格

我使用的是copilot

子任务预估哪些部分使用AIGC实际中哪些部分使用AIGC
爬取题目网页请求、header书写、md格式转化网页请求
爬取题解寻找源代码,网页请求 、md格式转化md格式转化
前端展示以为都可以发现不会写,可能是自己的表述有问题?
使用感受:其实在解决一些具体问题上,copilot的使用非常简单,但是可能在精细活上,由于我们本身描述不够具体而且正确,导致copilot无法正常使用,因此我们应该得建立正常的问答方式,这样子有助于我们更好地编写程序

5.你学会了什么内容?有什么心得体会?

爬虫 反爬虫 ttk的前端制作 copilot如何使用 正则表达式!!正则表达式真的很好用

由于这次编程未进行提前安排 改起来较麻烦 认识到了模块化设计的重要性

软工真的博大精深!! 一次作业感觉自己每次都可以学到很多新东西 开放试题可以锻炼人很多技能 如同搜索学习能力 遇到问题独立解决的能力

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

拆分的任务预估耗时实际耗时
学会如何爬取以为要学一天3h(一早上)
学会使用copilot一个晚上?没想到github学生认证这么麻烦!!
学会ttk制作前端两天这个部分耗时差不多 因为得思考 用户点击后的模拟过程 点击后进行爬取的过程 而且得画图 比较麻烦

(附加)

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

在这里插入图片描述

爬取题目在前端显示

利用ttk展示 见上

设置其他合理的筛选条件

设置了spj与普通提交 中英文等tag

以网页(或其他)的形式显示前端

正在学!!后端还不太会…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值