java 采集器_使用jsoup来写小说采集器
現(xiàn)在的小說越來越難找了,一般都是在線的,費流量且收藏起來麻煩。
所以我覺得寫一個整理器,從某些小說網(wǎng)站獲取小說內(nèi)容并保存為txt文件。
我們使用jsoup
它的maven描述為:
org.jsoup
jsoup
1.11.2
我們先找個小說網(wǎng)站,比如我們百度“思路客”,點擊一個網(wǎng)站(http://www.siluwu.com)進去后,搜索 煙雨江南的“褻瀆”
搜索好文章點進去后
這就是文章列表。
下面就開始分析和采集了
這里我們需要分析文章。
首先我們先獲取小說的文章名,我們知道文章名是id為title的div
我們獲取ID為title的內(nèi)容。他的路徑是"#title" 和jQuery很相似。String?xiaoshuoTitle?=?JsoupUtil.getElementString(doc,?"#title");
下面我們來獲取文章目錄:
根據(jù)分析我們可以得知 文章在一個ID為list的層下面.
所以我們可以使用Elements?es?=??JsoupUtil.getElements(doc,?"#list?>?dl?>?dd?>?a");
這樣我們就可以獲取所有的文章鏈接。
我們可是使用?e.attr("href") 來獲取鏈接地址 使用?e.text() 來獲取鏈接內(nèi)容,也就是文章標題。
代碼如下: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;
}
這樣我們就可以拿到一個文章集合。下面就是去解析每篇文章的標題:
我們發(fā)現(xiàn)文章在一個ID為content的層里面。
所以我們可以通過?JsoupUtil.getElements(doc, "#content").first(); 來獲取文章所在層。并且可以通過?html()方法來返回內(nèi)容。
下面我們要做的就是將所有的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導入到手機里 就是完整小說了。
總結
以上是生活随笔為你收集整理的java 采集器_使用jsoup来写小说采集器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: surface pro 7 linux,
- 下一篇: JavaScript中encodeURI