解析网页中的部分内容保存到本地

package com.pinjia.jyssc.util;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Calendar;

public class HtmlFile {
    public void captureHtml(String strURL) throws Exception {
        //String strURL = "http://www.163.com";
        URL url = new URL(strURL);
        
        HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
        InputStreamReader input = new InputStreamReader(httpConn
                .getInputStream(), "utf-8");
        BufferedReader bufReader = new BufferedReader(input);
        String line = "";
        StringBuilder contentBuf = new StringBuilder();
        while ((line = bufReader.readLine()) != null) {
            contentBuf.append(line);
        }
        String buf = contentBuf.toString();
        int beginIx = buf.indexOf("<div class=\"list\">");
        int endIx = buf.indexOf("<div class=\"share\">");
        String result = buf.substring(beginIx, endIx)+"</div>";
        System.out.println(new File(".").getAbsolutePath());
        //String templatePath = "../template.html"; 
        
        String templatePath = "D:/template.html"; 
        FileInputStream fileInputStream = new FileInputStream(templatePath);
        int length = fileInputStream.available();
        byte[] bytes = new byte[length];
        fileInputStream.read(bytes);
        fileInputStream.close();
        String templateContent = new String(bytes);//?
        
        templateContent = templateContent.replaceAll("###content###", result);
        //System.out.println(templateContent);
        Calendar calendar = Calendar.getInstance();
        String fileName = String.valueOf(calendar.getTimeInMillis())+".html";
        fileName = "d:/"+fileName;
        FileOutputStream fileOutputStream = new FileOutputStream(fileName);
        System.out.println("文件输出路径:"+fileName);
        byte[] tag_bytes = templateContent.getBytes();
        fileOutputStream.write(tag_bytes);
        fileOutputStream.close();
        
    }
    
    public static void main(String[] args) {
            HtmlFile htmlFile = new HtmlFile();
        try {
            htmlFile.captureHtml("http://www.cncdt.com/lykx/2016/0824/3060.html");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容