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("

", "") .replaceAll("

", "") .replaceAll("\\

你可能感兴趣的:(Java实现的一个小说采集程序)