2023秋软工实践个人作业二

102101304_杨雅聪 2023-09-15 13:23:50
这个作业属于哪个课<2023秋-福州大学软件工程社区-CSDN社区云>
这个作业要求在哪里<2023秋软工实践个人作业二-CSDN社区>
这个作业的目标学会使用copilot工具,学习爬虫,学会处理各种反爬机制
学号102101304

github仓库链接

项目介绍

  • 特色功能

    可以根据题目难度,关键字和算法对题目进行筛选,然后爬取对应题目的题面和第一篇题解。count变量可以设置希望爬取的题目数量。

  • 使用的技术

    cookie导入,实现账号自动登录。

  • 实现思路

    首先分析请求,列出程序需要的功能。在GUI页面添加需要的筛选框,包括有下拉菜单的题目难度选择和用户输入的关键词。然后将筛选条件传入luogu()函数进行爬取:cookie导入-进入题目页-对筛选条件进行比对-爬取符合条件的题目-保存题目。

爬取结果展示

爬取难度为“普及-”的前50道题目

 

 

单元测试

对爬取函数luogu()进行单元测试。

  • 测试样例

    样例为爬取题目难度为“入门”的1道题目。

  • 测试结果

  • 测试设计评价(测试用例能否满足程序测试的要求)

    满足程序测试要求。

AIGC表格

子任务预估哪些部分使用AIGC实际中哪些部分使用AIGC
代码框架根据不同功能给大致模板达到预估要求
编写GUI创建输入框,设置筛选条件创建输入框
洛谷登录导入cookie达到预估要求
爬取题目查看题目,进行筛选,爬取题目,保存题目查看题目,爬取题目

由于copilot认证花了较长时间,我大部分时间是使用gpt辅助编写代码。在激活copilot后,我尝试对代码进行了优化。

AIGC技术特点:

  • 优点

    • 快速生成代码片段,提供代码补全和建议,减少编码时间和精力消耗。

    • 帮助开发者避免常见的编码错误。

    • 可以和开发者交互,提高开发者的编程能力和技巧。

  • 缺点

    • 给出的建议不一定受用,仍然可能给出错误或不完全准确的代码建议。

    • 给出的答案可能会冗余,重复给出实现同一个功能的函数。

 

2023年-世界上最美丽的画面..

PSP表格

阶段任务预估耗时(小时)实际耗时(小时)
计划阶段制定项目计划11.5
设计阶段需求分析34
 功能设计33
编码阶段GUI页面34
 爬虫程序编写1015
测试阶段单元测试45
 总耗时2432.5

心得体会

  • 学会了什么

    • 学会使用tkinter制作copilot。

    • 学会编写基本的爬虫程序。

    • 学会如何处理几种反爬机制。

    • 学会如何和gpt“高效合作”。

  • 完成过程和效果

    由于python编程能力还比较薄弱,我完成这个作业的过程很曲折。从一开始使用request爬取题目时应对反爬机制,我采用了修改爬虫程序的User-Agent头部信息;再是发现爬取题解需要登录账号,我首先想到的是自动识别验证码登录,在学会导入tesserorc库识别验证码后发现这个方法识别准确度很低,然后尝试创建 Selenium WebDriver手动打开,到现在的导入cookie自动登录。还有在ddl前24h发现题目理解错了。(理解成爬取洛谷题单前五十题,然后进行筛选)总之,在完成这份作业的过程中,我也拓展学习了很多知识。这个过程作业进度推进得比较缓慢,但是我认为学习效果很好。(一周时间内学会的内容远远超乎我的预期T T)

    这是理解错任务要求写的筛选页面。

  • 哪里做的好

    程序:要求基本满足。

    学生本人:很有耐心,态度很好。

  • 哪里需要改进

    对于没找到题目还没办法进行反馈。

    题目中有特殊符号如‘/’还无法有效处理。(过后会优化)

~~~~~分界线~~~~~

2023.9.16

对于原本的不足进行了改进,对应代码已经上传到GitHub仓库。

版本介绍

  • luogu - 1

    初版本

  • luogu - 2

    • 将要求筛选题目数量条件放到GUI页面

    • 筛选框增加提示信息

    • 对于没找到更多题目可以进行反馈

 

  • luogu - 3

    • 将文件夹命名中的特殊符号换成'_'

    • 部分代码优化

感谢观看这篇博客)

 

 

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

107

社区成员

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

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