博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用jsoup来写小说整理器
阅读量:6632 次
发布时间:2019-06-25

本文共 1591 字,大约阅读时间需要 5 分钟。

  hot3.png

现在的小说越来越难找了,一般都是在线的,费流量且收藏起来麻烦。

所以我觉得写一个整理器,从某些小说网站获取小说内容并保存为txt文件。

我们使用jsoup

它的maven描述为:

org.jsoup
jsoup
1.11.2

我们先找个小说网站,比如我们百度“思路客”,点击一个网站(http://www.siluwu.com)进去后,搜索 烟雨江南的“亵渎”

1524bcc760b180e6cdbaba8738a84b3152c.jpg

搜索好文章点进去后

c8f1fb063ff580d22462543806c346ab1b4.jpg

 

这就是文章列表。

下面就开始分析和采集了

这里我们需要分析文章。

首先我们先获取小说的文章名,我们知道文章名是id为title的div

924e35d1c9dd49094f9fa912acaa4179ceb.jpg

我们获取ID为title的内容。他的路径是"#title" 和jQuery很相似。

String xiaoshuoTitle = JsoupUtil.getElementString(doc, "#title");

下面我们来获取文章目录:

63362012a74f6db5de91db79de85e428056.jpg

根据分析我们可以得知 文章在一个ID为list的层下面.

所以我们可以使用

Elements es =  JsoupUtil.getElements(doc, "#list > dl > dd > a");

这样我们就可以获取所有的文章链接。

我们可是使用 e.attr("href") 来获取链接地址 使用 e.text() 来获取链接内容,也就是文章标题。

代码如下:

private static List
getList(Document doc) throws IOException{ Elements es = JsoupUtil.getElements(doc, "#list > dl > dd > a"); List
as = new ArrayList
(); for(int i =0 ; i < es.size(); i++){ Article a = new Article(); Element e = es.get(i); a.setLink(e.attr("href")); a.setTitle(e.text()); as.add(a); } return as; }

这样我们就可以拿到一个文章集合。下面就是去解析每篇文章的标题:

df7d9115e8c97c2abf0deb54a1a529966ec.jpg

我们发现文章在一个ID为content的层里面。

所以我们可以通过 JsoupUtil.getElements(doc, "#content").first(); 来获取文章所在层。并且可以通过 html()方法来返回内容。

下面我们要做的就是将所有的html标签去除,并且将<br>替换为换行。

String content = getArticle(root_url+link);content = content.replaceAll(" ", " ");content = content.replaceAll("
", "\n");content = content.replaceAll("\n+", "\n");content = content.replaceAll("<[^>]+>", "");content = content.replace("read_content_up();", "");content = title+"\n"+content;

最后我们只需要将字符串拼接成为小说,并保存为txt文件。这样把txt导入到手机里 就是完整小说了。

项目附件在:里

转载于:https://my.oschina.net/ij2ee/blog/3027626

你可能感兴趣的文章
从自动驾驶到学习机器学习:解读2017科技发展的15大趋势
查看>>
在Linux中永久并安全删除文件和目录的方法
查看>>
全民直播时代 内容监管还得靠技术
查看>>
c++ 类的对象与指针
查看>>
java-JDBC
查看>>
对.NET跨平台的随想
查看>>
Nginx Rewrite规则初探(转)
查看>>
黑魔法NSURLProtocol 可拦截网络加载
查看>>
Integration Services创建ETL包
查看>>
IE浏览器开发中遇到的问题
查看>>
php实现按utf8编码对字符串进行分割
查看>>
Ftp的断点下载实现
查看>>
[转载] ubuntu Authentication failure
查看>>
Ring0 - 链表
查看>>
修改数组之----splice
查看>>
a版本冲刺第五天
查看>>
Arduino示例教程超声波测距实验
查看>>
Linux中chkconfig使用介绍
查看>>
二进制方式快速安装MySQL数据库
查看>>
查询指定库中所有表
查看>>