직접 CSDN 블 로그 추출 기 소스 분석 중 하나: 웹 페이지 를 처리 하여 txt 파일 로 저장 합 니 다.

3766 단어 소스 코드 분석
어제 오전 에 게시 물 을 올 렸 습 니 다. [오리지널] 직접 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: [email protected]
 * 
 *     ,    ,                   。  
 *          ,
 */
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 에 저장 할 수 없 기 때문에 그림 을 처리 할 때 정규 표현 식 으로 간단하게 지 울 수 있 습 니 다.

좋은 웹페이지 즐겨찾기