java 采集器_使用jsoup来写小说采集器

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

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

我们使用jsoup

它的maven描述为:

org.jsoup

jsoup

1.11.2

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

63bfd6249ba2f89e22081229b1685640.png

搜索好文章点进去后

9a7d0148ae79be186a07ba1b59f6fe8c.png

这就是文章列表。

下面就开始分析和采集了

这里我们需要分析文章。

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

106cdc122f2c8e4e3198b178341e5f11.png

我们获取ID为title的内容。他的路径是"#title" 和jQuery很相似。String xiaoshuoTitle = JsoupUtil.getElementString(doc, "#title");

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

101fa35fdecb1a483f4c4e667f783db4.png

根据分析我们可以得知 文章在一个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 

Article a = new Article();

Element e = es.get(i);

a.setLink(e.attr("href"));

a.setTitle(e.text());

as.add(a);

}return as;

}

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

90912678afc2d6b0ba033fcb82028ea3.png

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

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

下面我们要做的就是将所有的html标签去除,并且将
替换为换行。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导入到手机里 就是完整小说了。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值