[JavaWeb实训Day4]__jsoup爬虫(爬新闻页面)&词云的生成( kumo库)

目录

  • 一、本次实验分析过程
  • 二、Jee连接MySQL数据库
  • 三、异步传值及界面设计
  • 四、jsoup爬虫爬取新闻网页
  • 五、新闻词云的生成( kumo库)
  • 六、存入数据库

快速链接:【JavaWeb项目实训】——总目录

JavaWeb实训 Day3&4 :爬新闻页面、词云的生成并利用kumo库绘图,并保存本次爬取实验过程记录到本地MySQL中

一、本次实验分析过程

1、实现目标:
原新闻网站:

输入url地址,分析出词云图片:
[JavaWeb实训Day4]__jsoup爬虫(爬新闻页面)&词云的生成( kumo库)_第1张图片
数据库记录本次操作url及保存的词云图片位置:
[JavaWeb实训Day4]__jsoup爬虫(爬新闻页面)&词云的生成( kumo库)_第2张图片


2、思路分析:

[JavaWeb实训Day4]__jsoup爬虫(爬新闻页面)&词云的生成( kumo库)_第3张图片 [JavaWeb实训Day4]__jsoup爬虫(爬新闻页面)&词云的生成( kumo库)_第4张图片


3、本次实验总项目结构:
[JavaWeb实训Day4]__jsoup爬虫(爬新闻页面)&词云的生成( kumo库)_第5张图片
4、总流程设计:
[JavaWeb实训Day4]__jsoup爬虫(爬新闻页面)&词云的生成( kumo库)_第6张图片


二、Jee连接MySQL数据库

环境:EclipseJee2018-09+MySQL8.0

(一)在MySQL中创建websql数据库,创建表w_msg:用于放置我们将要爬到的内容数据(图1为成功爬取后的表):
[JavaWeb实训Day4]__jsoup爬虫(爬新闻页面)&词云的生成( kumo库)_第7张图片

创建表:
[JavaWeb实训Day4]__jsoup爬虫(爬新闻页面)&词云的生成( kumo库)_第8张图片 [JavaWeb实训Day4]__jsoup爬虫(爬新闻页面)&词云的生成( kumo库)_第9张图片
注意:wid选择自增(AI)

(二)lib引入相应版本jar包

  1. 我对应的在这里插入图片描述包引入图中位置:
    [JavaWeb实训Day4]__jsoup爬虫(爬新闻页面)&词云的生成( kumo库)_第10张图片
  2. 右击wc1项目->选择属性->Java Build Path->Add JARs...选中jar包位置->Apply
    [JavaWeb实训Day4]__jsoup爬虫(爬新闻页面)&词云的生成( kumo库)_第11张图片

(三)新建com.cungudafa.util包,新建DBUtil.java类:用于连接数据库:

    public static String dbUrl="jdbc:mysql://localhost:3306/websql?useSSL=false&serverTimezone=UTC";
    public static String dbUserName="root";
    public static String dbPassword="wy123456";
    public static String jdbcName="com.mysql.jdbc.Driver";

[JavaWeb实训Day4]__jsoup爬虫(爬新闻页面)&词云的生成( kumo库)_第12张图片

其中关于数据库连接,遇到的部分问题我在这边博客记录了:关于连不上MySQL8.0问题

三、异步传值及界面设计

(1) web.xml写入请求url:
[JavaWeb实训Day4]__jsoup爬虫(爬新闻页面)&词云的生成( kumo库)_第13张图片
(2)a.jsp总界面设计:(外部a、内部b1)
[JavaWeb实训Day4]__jsoup爬虫(爬新闻页面)&词云的生成( kumo库)_第14张图片
(3)b1.jsp:异步加载获取图片的url(之前在web中声明的url事件:getImg)
[JavaWeb实训Day4]__jsoup爬虫(爬新闻页面)&词云的生成( kumo库)_第15张图片

四、jsoup爬虫爬取新闻网页

利用jsoup提取网页中的数据
(1)页面数据的结构 找出里面你需要的数据的规则
数据抓取规则
1.正则表达式
2.xPath
3.css选择器
(2)需要不要请求多个页面的数据
注意:通过异步进行加载,设置请求的时间限制
一个Test01.java文件测试:
[JavaWeb实训Day4]__jsoup爬虫(爬新闻页面)&词云的生成( kumo库)_第16张图片

GetData.java
[JavaWeb实训Day4]__jsoup爬虫(爬新闻页面)&词云的生成( kumo库)_第17张图片

五、新闻词云的生成( kumo库)

词云的生成(利用第三方的库 kumo)(第一个功能)
(1) 输入具体的网址
(2) 对网页进行数据上面的分析
(3) 利用第三方库生成图片 (生成一个图片)
1.词语的组成
2.词频的统计
3.利用IO流把词频高的写入到对应的内容中
4.把对应生成的内容存放到数据库中

BuildImgService.java图片生成函数:(老师给的,具体我也不太明白,第三方库就对了~)
[JavaWeb实训Day4]__jsoup爬虫(爬新闻页面)&词云的生成( kumo库)_第18张图片
其中我把图片返回到刚才新建的wc1下的img文件夹下,因为网页获取图片需要从路径获取,保存到数据库中也是保存路径名;
[JavaWeb实训Day4]__jsoup爬虫(爬新闻页面)&词云的生成( kumo库)_第19张图片

这里声明一下,在项目中新建一个空文件,Tomcat不会部署上去,
(原因:空文件夹自动识别,不会部署,毕竟为了节约资源);
举例说明:
1、查看工作环境中的wc1目录:(这里是刚才新建的img文件夹
[JavaWeb实训Day4]__jsoup爬虫(爬新闻页面)&词云的生成( kumo库)_第20张图片
2、查看Tomcat部署环境中的wc1目录:(这里是没有刚才新建的img文件夹的)
会遇到如下错误:
[JavaWeb实训Day4]__jsoup爬虫(爬新闻页面)&词云的生成( kumo库)_第21张图片
3、我们需要手动新建一下img文件夹 注意!注意!注意!
[JavaWeb实训Day4]__jsoup爬虫(爬新闻页面)&词云的生成( kumo库)_第22张图片

六、存入数据库

ImgUrlService存入数据库中,及从数据库中读取路径! [JavaWeb实训Day4]__jsoup爬虫(爬新闻页面)&词云的生成( kumo库)_第23张图片
[JavaWeb实训Day4]__jsoup爬虫(爬新闻页面)&词云的生成( kumo库)_第24张图片


大致过程就是这样!记录一下~
附源码:

你可能感兴趣的:(jsoup爬虫,词云生成(kumo库),JavaWeb,Java前后端开发学习)