如果处于上学阶段,这部分应该算是不重要的,大家有兴趣就看看,我这也只是写下来记记。
现在我们这部分项目是已经写好了:
接下来就是打包给客户,能够让他们不使用 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、接着我们再看下本地数据库表中数据:
有重复数据,这就表示刚才我们在命令行模式下运行的成功生效了,到此整个项目的导出及使用就算是完成了。
需要注意的是,虽然导出的包也正常运行了,但如果在其他电脑上也想正确运行的话,需要一个前提,那就是其他电脑上的数据库设置需要和我们本地机保持一致,另外表中属性值等同样保持一致,只有这样,在其他电脑上运行后才不会出错。