首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

自各儿动手写CSDN博客提取器源码分析之一:处理网页保存为txt文件

2012-08-01 
自己动手写CSDN博客提取器源码分析之一:处理网页保存为txt文件在昨天上午发了一个帖子[原创]自己动手写CSD

自己动手写CSDN博客提取器源码分析之一:处理网页保存为txt文件

在昨天上午发了一个帖子[原创]自己动手写CSDN博客提取器,提取文件保存支持PDF、doc、txt三种格式有很多网友比较感兴趣,有些网友说要公布一下源码,在这里,我就把这个软件制作的一些核心代码贴出来,给大家分享。

下面是把抓取到的网页用正则表达式处理留下纯文本然后保存为txt文件。这个代码很简单的,相信大家都看得懂吧。

/** *  */package com.wyp.html2txt;import java.io.BufferedWriter;import java.io.File;import java.io.FileWriter;import java.io.IOException;/** * @author w397090770 * Create Data: 2012-7-18 * Email: wyphao.2007@163.com *  * 版权所有,翻版不究,但是在修改本程序的时候务必加上这些注释。谢谢 * 仅用于学习交流之用, */public class saveAsTXT {public void html2txt(File file, String str, String title){//去掉<script>(.*?)</script>//str = str.replaceAll("<[Ss][Cc][Rr][Ii][Pp][Tt].*?>.*?<[/]?[Ss][Cc][Rr][Ii][Pp][Tt]>", "####");//str = str.replaceAll("<\\b(\\w+)[\\s\\w>\"/\'=:;.]+</\\1>", "####");str = str.replaceAll("<\\b(\\w+)[\\s\\w>\"/'=&:_;.]+</\\1>", "####");//去掉<br/>str = str.replaceAll("<[\\s]*[Bb][Rr][\\s]*[/]?[\\s]*>", System.getProperty("line.separator"));//<p>也是换行str = str.replaceAll("<[\\s]*[/]*[Pp].*?>", System.getProperty("line.separator"));//替换所以的HTML标签str = str.replaceAll("<[\\s]*[/]?[a-zA-Z]*.*?>", "");//替换空格,两个 说明是一个大空格,一个 说明是一个小的空格str = str.replaceAll("  ", " ");str = str.replaceAll(" ", " ");//替换> <号str = str.replaceAll(">", ">");str = str.replaceAll("<", "<");//替换& str = str.replaceAll("&", "&");//半方大的空白str = str.replaceAll("?", " ");//全方大的空白str = str.replaceAll("?", " ");//双引号str = str.replaceAll(""", "\"");//版权str = str.replaceAll("©", "");//已注册商标str = str.replaceAll("©", "");//乘号str = str.replaceAll("×", "×");//除号str = str.replaceAll("÷", "÷");//加号str = str.replaceAll("+", "+");//不知道为什么CSDN格字是被替换掉了,不管了,我也替换str = str.replaceAll("格", "格");//保存文件File saveFileName = new File(file.getAbsolutePath() + File.separator + title + ".txt");if(!saveFileName.exists()){//只有文件不存在才保存try {saveFileName.createNewFile();} catch (IOException e1) {// TODO Auto-generated catch blocke1.printStackTrace();return;}BufferedWriter bw = null;try {//开始保存了bw = new BufferedWriter(new FileWriter(saveFileName.getAbsolutePath(), false));bw.write(str);bw.newLine();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();} finally {try {bw.flush();bw.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}}
以上是把抓取到的网页用正则表达式匹配,去掉所有的网页标签,只留下纯文本的数据,然后就可以保存为txt文件,当然图片是无法在txt里面保存的,所以在处理图片的时候就简单的用正则表达式去掉了。
1楼qiurisuixiang昨天 20:08
正则表达式很强大,,

热点排行