首页 > 代码库 > Java实现的一个小说采集程序

Java实现的一个小说采集程序

被标题吸引进来的不要骂我。

只是一个简单的实现,随手写了来下载一部喜欢的小说的。示例中的小说只是示例,不是我的菜。

使用了jsoup。挺好用的一个工具。

有需要的话,参考下自己改吧。挺简单的,是吧。

代码如下:

package com.zhyea.doggie;import java.io.File;import java.io.FileWriter;import java.io.IOException;import org.jsoup.Jsoup;import org.jsoup.nodes.Document; import org.jsoup.select.Elements;public class Doggie {    public static void main(String[] args){        try{            File txtFile = new File("D:/无限崩坏.txt");            createTxtDoc(txtFile);             addContent(txtFile);        }catch(Exception e){            e.printStackTrace();        }                }        /**     * 向小说文件中添加内容     * @param txtFile     *             小说文件     * @throws IOException     * @throws InterruptedException     */    private static void addContent(File txtFile) throws IOException, InterruptedException{        appendTxt(txtFile, getBookInfo("无限崩坏", "啪啪啪狂魔"));        String url = "http://www.83kxs.com/View/12/12653/{pattern}.html";        for(int i=5850686; i<=5945501; i++){            try{                String tmp = url.replace("{pattern}", i+"");                appendTxt(txtFile, getPageContent(tmp));            }catch(Exception e){                e.printStackTrace();                continue;            }        }    }            /**     * 设置书名和作者     * @param bookName     *                 书名     * @param author     *                 作者     * @return     */    private static String getBookInfo(String bookName, String author){        return COMMON.replace("{book}", bookName).replace("{author}", author);    }            /**     * 读取页面内容     * @param url     *            访问路径                  * @return     * @throws IOException      */    private static String getPageContent(String url) throws IOException{        String rtn = null;                Document doc = Jsoup.connect(url).get();        Elements content = doc.select(".text p");        Elements title = doc.select("#title");                System.out.println(title.text());                content.select("font").remove();        content.select("script").remove();        content.select("ins").remove();        content.select("a").remove();                    rtn = title.text() + NEWLINE             + content.html().replaceAll("<p>", "")                            .replaceAll("</p>", "")                            .replaceAll("\\<!--(.+)--\\>", "")                            .replaceAll("&nbsp;", "")                            .replaceAll("<br>", NEWLINE)            + NEWLINE;                return rtn;    }        /**     * 创建新的txt文件     * @param fullName     *             文件全名     * @return     * @throws Exception     */    private static boolean createTxtDoc(File txtFile) throws Exception{        try{            return txtFile.createNewFile();        }catch(Exception e){            throw e;        }    }            /**     * 向txt文件中追加内容     * @param txtFile     *             要操作的txt文件     * @param content     *             要追加的内容     * @throws IOException     */    private static void appendTxt(File txtFile, String content) throws IOException{        FileWriter writer = null;        try{            writer = new FileWriter(txtFile, true);            writer.append(content);        }finally{            if(null!=writer)writer.close();        }    }        /**     * 换行符     */    static final String NEWLINE = System.getProperty("line.separator");        /**     * 书前的通用信息     */    static String COMMON = "------------------------------------------------------------------" + NEWLINE                                + "---------------  书名:{book}" + NEWLINE                                + "---------------  作者:{author}" + NEWLINE                                + "---------------  zhyea.com" + NEWLINE                                + "------------------------------------------------------------------" + NEWLINE;    }

Java实现的一个小说采集程序