一、项目简介
功能描述:对网页的字符串进行匹配,使用流和文件进行下载图片,实现对多个URL的图片抓取
个人负责任务: 负责图片下载系统的逻辑实现
团队博客链接:网页图片下载系统_周伟垲的博客-CSDN博客
项目git链接:https://gitee.com/jmu-chowhound/java-learn-j.git
二、功能架构图
整个系统的功能架构图,可以使用团队博客的图,但要在自己负责的部分标为黄底。
三、个人任务简述
1. 完成的任务与功能:
序号 | 完成功能与任务 | 描述 |
1 | 匹配网页中的图片字符串 | 使用正则表达式,对网页中的图片字符串进行匹配 |
2 | 下载网页图片 | 使用读取网页,并用使用文件下载图片 |
3 | 面向对象设计 | 规划了图片下载系统所需要的类 |
4 | MVC模式 | 负责将M,并协调M与C |
5 | 多个URL启动多个线程同时进行抓取 | 是用了多线程,可以同时下载不同网站的图片 |
2. Git提交记录截图:
四、本人负责功能详解
1. *MVC模式与面向对象设计
2. *下载网页中的图片:
2.1使用到的技术:
流、文件操作
2.2难点:
在读取图片流,要对图片的存储大小进行判断,用输入流的available()方法是不正确的
2.3解决办法:
使用 ByteArrayOutputStream可以实现对流的重复读取
2.4关键代码截图:
3.1采用的技术:
多线程
3.2难点:
该在哪个代码块是用多线程以及该如何规划包名
3.3解决方法:
类比应用商店下载软件,参考了BourceThread
3.1关键代码截图:
4. 匹配网页中的图片字符串
4.1采用的技术:
正则表达式的构造、模式与匹配器
4.2难点:
对图片中的图片字符串进行匹配
4.3解决方法:
学习正则表达式,理解相关细节,懂得了Pattren与Matcher
4.4关键代码截图:
五、课程设计感想
在本次的课程设计中,初次使用git,不是很了解,在学习之后,我懂得了在git上提交代码的原理,但是在之后又遇到本地仓库与远程仓库的代码不同步问题。
通过本次的课程设计,我学习到了如何使用git管理代码,对正则表达式有了了解,对网页的有了一定的了解,深入理解MVC模式,但是还是觉得自己设计的系统还是存在bug,需要更新迭代。
六、展望
可写两部分内容:
1. 不足之处:没有显示图片的下载进度,多线程的使用存在漏洞
改进:增加可以实时显示图片的下载进度
2. 进一步了解网络的相关内容,深入学习爬虫技术