奇酷学院-数据采集及其可视化(三)

 

如果处于上学阶段,这部分应该算是不重要的,大家有兴趣就看看,我这也只是写下来记记。

现在我们这部分项目是已经写好了:

接下来就是打包给客户,能够让他们不使用 eclipse 就能运行我们写的代码,就能把结果展示出来,为了给客户较好的体验感,我们尚需对主函数中做一下更改:

package com.qiku.seivice;

import java.io.IOException;

import org.jsoup.Connection;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

import com.qiku.dao.NovelDao;
import com.qiku.entity.NovelInfo;
import com.qiku.util.SpiderUtil;

public class WebpageSpider {

	public static void main(String[] args) throws Exception {
		// TODO 自动生成的方法存根
		//定义小说所在网页位置
		String URL="https://www.qidian.com/search?kw=完美世界";
		//获取 Jsoup 连接
		Connection connect = Jsoup.connect(URL);
		//触发 URL 对应的 html 信息
		Document document = connect.get();
		
		//定位所有小说所在的路径
		Elements NovelList = document.select(".book-img-text ul li");
		
		//遍历输出
		for(Element ele:NovelList) {
			Elements NovelName = ele.select(".book-mid-info h4");
//			System.out.println("小说名称: "+NovelName.text());
			
			Elements NovelWordCount = ele.select(".total p span");
//			System.out.println("小说总字数: "+NovelWordCount.first().text());
			
			//或者这样定义
			//在网页源代码中可以看到总字数和推荐量位于同一个 div 下,故能一起用。
			String NovelAdviceNumber = NovelWordCount.last().text();
//			System.out.println("小说推荐量: "+NovelAdviceNumber);
			
			NovelDao novelDao = new NovelDao();
			NovelInfo novelInfo = new NovelInfo();
			novelInfo.setNovelName(NovelName.text());
			novelInfo.setNovelWordCount(SpiderUtil.StrToInt(NovelWordCount.first().text()));
			novelInfo.setNovelAdviceNumber(SpiderUtil.StrToInt(NovelAdviceNumber));
			
			int result = novelDao.insertNovelInfo(novelInfo);
//			System.out.println("结果: "+result);
			
//			System.out.println();
		}
		System.out.println("It's successful.");
	}
}

相较前面的可以看出,我把输出部分的语句都注释掉了,然后又添加一行表示成功的输出语句。换个思维想一下,如果这部分代码没改,如果我们是客户,我们只关心结果成功不成功,至于中间的什么过程细节我们是不在意的,那么在收到项目之后,一运行屏幕中啪啪啪出来很多行输出语句(我们这才爬取了十部小说,现实情况下应该是大数量的),那么给客户的体验感就极差。而我们进行修改之后,客户一运行,最后提示一个成功的输出语句,客户就知道他要的结果已经实现了,这样效果会更好。

下面来演示下如何将项目打包:

1、首先选择整个项目,进行导出。

2、然后选择导出 java 目录下的可运行文件。

3、启动配置中选择可运行出结果的类(即带有主函数且已经成功运行过)。

4、导出目标是导出的存放位置,为了后面更方便使用,我将其直接放在了 D 盘下,文件名为 Spider ,当然你也可以选择建立个目录去存放,看实际需要。

5、库处理部分,选择带有拷贝字样的选项,即第三个,这个表示我们在写项目时所用到的一些 jar 包,在生成文件时自动将其分开放入一个同路径下的文件夹中,用户体验较好,然后完成。

6、提示出现该字样,表示没问题,继续进行就 ok 了,但如果出现红色叉号类型的,表示你在上面启动配置中出现了错误(一般情况下是)。

7、我们去看下导出的情况。

这就成功导出了。


 

项目导出了,但客户是需要怎么去使用呢,很简单,不过也有条件限制。下面先说下怎么去使用导出的文件:

1、进入电脑命令行模式:

2、根据导出文件存放的位置路径进行读取,其命令为:

java -jar Spider.jar etc.dirs=Spider_lib ;

运行情况为:

我们发现运行结果中只出现了成功的输出结果,没有那一堆的小说名称、总字数什么的,这看起来更加简单顺畅。

3、接着我们再看下本地数据库表中数据:

有重复数据,这就表示刚才我们在命令行模式下运行的成功生效了,到此整个项目的导出及使用就算是完成了。

 

需要注意的是,虽然导出的包也正常运行了,但如果在其他电脑上也想正确运行的话,需要一个前提,那就是其他电脑上的数据库设置需要和我们本地机保持一致,另外表中属性值等同样保持一致,只有这样,在其他电脑上运行后才不会出错。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值