自己动手写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 block
				e1.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 block
				e.printStackTrace();
			} finally {
				try {
					bw.flush();
					bw.close();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}
		
		
	}
}
以上是把抓取到的网页用正则表达式匹配,去掉所有的网页标签,只留下纯文本的数据,然后就可以保存为txt文件,当然图片是无法在txt里面保存的,所以在处理图片的时候就简单的用正则表达式去掉了。
自己动手编译和链接对于计算机科学和软件工程领域的学习者来说是一项非常有挑战性和有益的任务。下面我将简要介绍如何在CSDN上找到相关的学习资源和教程。 首先,编译和链接是计算机软件开发中非常重要的工具,用于将高级语言编的源代码转换语言并执行。如果你想学习如何自己动手编译和链接,你可以在CSDN网站上寻找相关教程和学习资料。 在CSDN上搜索关键词“编译教程”或“链接教程”,你会找到很多相关的文章和博客。这些文章会介绍编译和链接的基本原理和工作流程,以及如何使用不同的编程语言来实现它们。 此外,你还可以在CSDN的论坛或问答板块上提问,向其他开发者或专家请教关于编译和链接的问题。在这里,你可以得到其他人的经验分享和专业建议,加速你学习的进程。 另外,你还可以加入一些与编译和链接相关的技术讨论群,与其他学习者和专家进行交流和讨论。在这些群中,你可以分享自己的学习经验,向别人请教问题,获取更广泛的视角和深入的理解。 总的来说,自己动手编译和链接是一项非常有挑战性和充实的任务。在CSDN上你可以找到很多相关的学习资源和教程,同时通过与其他学习者和专家交流可以加速你的学习进程。希望你能够充分利用这些资源,顺利掌握编译和链接的原理和实现方法。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值