一、项目简介
对网页中的图片实现抓取下载功能,实现多个网址同时下载功能,实现下载信息查询功能,并将所有功能图形界面化。
二、项目采用技术
流,文件的操作
NetBeans图形界面设计
三、功能需求分析
1.系统实现用户输入网址,网址图片抓取及抓取信息查询。
2.简单模型
四、项目亮点
1. *MVC模式与面向对象设计
2. *下载网页中的图片:
2.1使用到的技术:
流、文件操作
2.2难点:
在读取图片流,要对图片的存储大小进行判断,用输入流的available()方法是不正确的
2.3解决办法:
使用 ByteArrayOutputStream可以实现对流的重复读取
2.4关键代码截图:
3. *多个URL启动多个线程同时进行抓取
3.1采用的技术:
多线程
3.2难点:
该在哪个代码块是用多线程以及该如何规划包名
3.3解决方法:
类比应用商店下载软件,参考了BourceThread
3.1关键代码截图:
4. 匹配网页中的图片字符串
4.1采用的技术:
正则表达式的构造、模式与匹配器
4.2难点:
对图片中的图片字符串进行匹配
4.4关键代码截图:
5.网页存在检测方法
设置请求方法,向网页发送请求,获取网页响应的状态码进行判断
关键代码:
6.图片界面实现
1.1使用NetBeans进行图形界面设计。
1.2根据代码实现功能,将图片界面分三部分,第一部分系统,第二部分信息查询,第三部分界面切换。
1.2.1整个系统
总体由两个JPanel构成。使用BorderLayout布局将界面划分为两个区域。
mainPanel含有系统与信息查询两个Panel,使用CardLayout布局用于实现界面切换
jPanel3为界面切换Panel,使用FlowLayout布局使得组件按照先后加入顺序及设置的对齐方式从左到右排列,使按钮排列有序
1.2.2系统
系统界面由3个JLabel,2个JTextField,2个JButton构成。
3个JLabel显示文字提示
2个JTextField用于获取用户输入
2个JButton分别用于抓取按钮,退出按钮。
关键代码:
抓取按钮Action
退出按钮Action
1.2.3信息查询
信息查询界面由3个JLabel,1个JTextField,2个JButton构成
3个JLabel分别用于信息提示、信息展示、信息展示
1个JTextField用于获取用户输入
2个JButton用于查看下载图片个数按钮和查看下载路径按钮。
关键代码:
查看下载图片按钮Action
查看下载路径按钮Action
1.2.4界面切换
界面切换由2个Button构成
2个Button分别分系统按钮、信息查看按钮
关键代码:
系统按钮Action
信息查看按钮Action
五、项目系统演示
视频展示链接:https://live.csdn.net/v/268339
六、团队成员负责模块
项目成员 | 负责任务 |
林金楠(组长) | 匹配网页中的图片字符串 |
下载网页图片 | |
面向对象设计 | |
MVC模式 | |
多个URL启动多个线程同时进行抓取 | |
周伟垲 | 图形界面实现 |
网页存在检测方法 | |
部分代码规范 |
七、git地址及成员提交记录
1.git地址:https://gitee.com/jmu-chowhound/java-learn-j.git
2.成员提交记录:
林金楠(组长):
周伟垲: