1. 程式人生 > >html抽取文字資訊-java版(適合lucene建立索引)

html抽取文字資訊-java版(適合lucene建立索引)

import org.htmlparser.NodeFilter;
import org.htmlparser.Parser;
import org.htmlparser.beans.StringBean;
import org.htmlparser.filters.CssSelectorNodeFilter;
import org.htmlparser.util.NodeList;

public class HtmlUtil {
	public static String getText(String html, String id) {
		try {
			Parser parser = new Parser(html);
			NodeFilter filter = new CssSelectorNodeFilter("#" + id);
			NodeList nList = parser.extractAllNodesThatMatch(filter);
			return nList == null || nList.size() == 0 ? null : nList.elementAt(
					0).toPlainTextString();
		} catch (Exception e) {
			e.printStackTrace();
			return null;
		}
	}

	public static String getTextByClass(String html, String css_class) {
		try {
			Parser parser = new Parser(html);
			NodeFilter filter = new CssSelectorNodeFilter("." + css_class);
			NodeList nList = parser.extractAllNodesThatMatch(filter);
			return nList == null || nList.size() == 0 ? null : nList.elementAt(
					0).toPlainTextString();
		} catch (Exception e) {
			e.printStackTrace();
			return null;
		}
	}

	public static String filterText(String text) {
		if (text == null)
			return null;
		text = text.replace(">", ">");
		text = text.replace("<", "<");
		text = text.replace(""", "\"");
		text = text.replace(" ", " ");
		text = text.replace("&", "&");
		text = text.replace("&copy;", "©");
		text = text.replace(" ", "");
		return text;
	}

	/**
	 * 獲取網頁中純文字資訊
	 * 
	 * @param html
	 * @param id
	 * @return
	 * @throws Exception
	 * @throws Exception
	 */
	public static String getText(String html) throws Exception {
		StringBean bean = new StringBean();
		bean.setLinks(false);
		bean.setReplaceNonBreakingSpaces(true);
		bean.setCollapse(true);

		// 返回解析後的網頁純文字資訊
		Parser parser = Parser.createParser(html, "utf-8");
		parser.visitAllNodesWith(bean);
		parser.reset();
		return bean.getStrings();
	}
}

需要用htmlparse.jar庫,呼叫方式如下:

HtmlUtil.getText(htmlStr);

相關推薦

html抽取文字資訊-java適合lucene建立索引

import org.htmlparser.NodeFilter; import org.htmlparser.Parser; import org.htmlparser.beans.StringBean; import org.htmlparser.filters.Css

資料預處理之抽取文字資訊2

摘要:大資料技術與我們日常生活越來越緊密,要做大資料,首要解決資料問題。原始資料存在大量不完整、不一致、有異常的資料,嚴重影響到資料建模的執行效率,甚至可能導致模型結果的偏差,因此要資料預處。資料預處理主要是將原始資料經過文字抽取、資料清理、資料整合、資料處理、資料變換、資料降維等處理後,不

CTP Java Swig

log export {0} ide java size_t ati parameter vat 參考文檔 感謝這個博主https://blog.csdn.net/pjjing/article/details/53186394https://my.oschina.net/q

【敏捷開發】經驗構件庫-Javaexp-libs

完整原文(含原始碼):http://exp-blog.com/2018/09/22/pid-2382/ (轉載請註明出處,僅供分享學習,嚴禁用於商業用途) 環境 簡介 此構件庫為本人多年程式設計總結提煉而成,把常用的功能模組作為原子API

【暗戀不可恥但無用】QQ空間爬蟲-Javajzone-crawler

完整原文(含 原始碼 與 釋出版 下載):http://exp-blog.com/2018/09/15/pid-2347/ (轉載請註明出處,僅供分享學習,嚴禁用於商業用途) 宣告 在你心中是否有一個默默關注的小姐姐? 你是否想知道在遇見她之前

★ Python爬蟲 - 爬取網頁文字資訊並儲存美文的爬取與儲存

 本篇文章所包含的主要內容:  使用requests模組實現對網頁以字串的形式儲存 使用open()、write()、close()函式實現檔案的開啟與寫入 使用if() 條件語句對所需要的文字資訊進行過濾以形成一個專用提取函式 &n

uploadify在火狐下上傳不了的解決方案,javaSpring+SpringMVC+MyBatis詳細解決方案

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

JAVA中IO流文字檔案的操作BufferedWriter和BufferedReader 緩衝區

JAVA 中 字元流的緩衝區 分為了BufferedWriter 和BufferedReader 先講BufferedWriter 作用: 緩衝區要結合流才可以使用,而且在流的基礎上對流的功能進行了增強。我們也可以說,在我們以後的實際運用之中,為了增強一下I

leetcode解題之136 #Single Number Java只出現一次的數字

136. Single Number Given an array of integers, every element appearstwice except for one. Find tha

微信跳一跳輔助之JAVA最容易理解的演算法實現原理分析

上幾周更新微信後,進入歡迎介面就提示出讓玩一把微信小遊戲《跳一跳》。一向不愛玩遊戲的我(除了經典QQ飛車、CS外),當時抱著沒興趣的態度簡單看了下,沒有玩。與朋友玩耍時,常聽他們聊起這個小遊戲,偶爾也在網頁和微信公眾號上看見些關於這個小遊戲的一些話題,為了不落伍,我決定繼續

leetcode解題之 Search a 2D Matrix java 在二維矩陣中查詢

74. Search a 2D Matrix Write an efficient algorithm that searches for a value in anm x n matrix.

超簡單JSP人員資訊管理系統適合新手練手用

自己以前閒著沒事寫的JSP小專案,適合剛學完JSP拿來練手的朋友。 github地址: https://github.com/mudfish/userManager   專案說明: 軟體需求: 開發工具:eclipse 資料庫:mysql 應用伺服器:t

A*自動尋路演算法—java八方向

上一篇部落格分享了Java版的自動尋路,但是隻是上下左右四個方向的,今天把八方向的也分享出來。既然四方向的已經成功了,那麼改進成八方向的,只要注意兩個地方就可以了,一個是獲取四周方塊的時候,一個是移動的時候。一、獲取四周方塊在autofindway.java中新增靜態變數,用

Java基礎適合新學者和架構師閱讀

近日為了複習CoreJava故自己收集了很多書籍彙編成以下java最核心的內容:參考出處(Java從入門到精通,Java學習手冊(app))備註:我不留對別人毫無用處的博文,所以如果對你有用處請評論。否則,一個月過後沒有超過500我會自行刪除。 Java的誕生與發展

leetcode解題之 11. Container With Most Water Java最大盛水容積

11. Container With Most Water Given n non-negative integers a1, a2, ..., an, where each represen

leetcode解題之 15. 3Sum Java結果為目標值的三個數字

15. 3Sum Given an array S of n integers, are there elementsa, b, c in S such that a + b +c = 0?

HtmlParser提取網頁中的純文字資訊-java

    HTMLParser 一個解析web頁面的開源類庫。         準備學習下搜尋方面的技術,就學習了些網路爬蟲的知識。最近一直在一個點上困惑,如何提取一個網頁上的純文字資訊。要使用正則表示式的話呢,需要考慮很多因素,而且標籤也太多,不是很方便,效果也不好。就準備利用開源包,最後選擇了HtmlPar

leetcode解題之69.Sqrt(x) & 367. Valid Perfect Square Java 求一個數的平方根

69. Sqrt(x) Implement int sqrt(int x). Compute and return the square root of x. 求一個數的平方根,並向下取整。

python--DenyHttp項目2--ACM監考客戶端測試1階段完成總結

tdi text class 測試版 window etl operate comm decode   客戶端: ‘‘‘ DenyManager.py 調用客戶端與客戶端界面 ‘‘‘ from DenyClient import * from DenyGui import