`

Java抽取HTML内容

    博客分类:
  • seo
阅读更多
利用Java抽取HTML中的内容当然不想JavaScript中那么简单(obj.innerHTML),但绝对是可以实现的,这里给大家介绍一种。

思路很直接:利用正则表达式配置html代码,然后删除这些代码。
当然还有一种方法是直接配置中文,这种方法虽然明显有问题,但对纯中文内容还是很准确。两种方法这里都提供。

我们需要配置的文字如下:
<td><a target=\"_blank\" href=\"http://www.baidu.com/baidu?cl=3&tn=baidutop10&fr=top1000&wd=%A1%B6%CC%C6%C9%BD%B4%F3%B5%D8%D5%F0%A1%B7%B9%AB%D3%B3\">《唐山大地震》公映</a></td>

我们需要从中抽取出“唐山大地震》公映

方法一:查找出html标签,然后删除
public void findContent(){
		// 配置html标记。
		Pattern p = Pattern.compile("<(\\S*?)[^>]*>.*?| <.*? />");
		String html = "<td><a target=\"_blank\" href=\"http://www.baidu.com/baidu?cl=3&tn=baidutop10&fr=top1000&wd=%A1%B6%CC%C6%C9%BD%B4%F3%B5%D8%D5%F0%A1%B7%B9%AB%D3%B3\">《唐山大地震》公映</a></td>";
		Matcher m = p.matcher(html);

		String rs = new String(html);
		// 找出所有html标记。
		while (m.find()) {
			System.out.println(m.group());
			// 删除html标记。
			rs = rs.replace(m.group(), "");
		}
		System.out.println("-----");
		System.out.println(rs);
	}


方法二:匹配双字节字符(包括汉字在内):[^\x00-\xff]
评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)
public void findContent2(){
		// 匹配双字节字符(包括汉字在内)
		Pattern p = Pattern.compile("[^\\x00-\\xff]");
		String html = "<td><a target=\"_blank\" href=\"http://www.baidu.com/baidu?cl=3&tn=baidutop10&fr=top1000&wd=%A1%B6%CC%C6%C9%BD%B4%F3%B5%D8%D5%F0%A1%B7%B9%AB%D3%B3\">《唐山大地震》公映</a></td>";
		Matcher m = p.matcher(html);

		while (m.find()) {
			System.out.print(m.group());
		}
	}


好了,以上是我提供的两种方法,希望对大家有些帮助,也希望大家提供更多更好的方法。

文章地址:http://javapub.iteye.com/blog/719658
2
3
分享到:
评论
4 楼 javapub 2010-07-23  
mercyblitz 写道
javapub 写道
利用Split效率低一些吧,而且利用Split分割的代码量也不少,判断也不少。


在很多地方需要中间结果,再处理。

明白,我这里提供的方法,其实类似于一个网页爬虫,它不在乎你html里的东西,只在乎内容。
public class Test001 {
	List<String> rsList = new ArrayList<String>();
	private Test001() {
		try {
			loadHtml();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	private void loadHtml() throws IOException {
		// 定义一个url类的实例。
		URL url = new URL("http://top.baidu.com/buzz/top10.html");
		// 以特定格式读取文件流。
		InputStreamReader isr = new InputStreamReader(url.openStream(),
				"gb2312");
		BufferedReader br = new BufferedReader(isr);
		String s;

		boolean beginFind = false;
		while (null != (s = br.readLine())) {
			if ("<tbody id=\"listdata\">".equals(s.trim())) {
				beginFind = true;
			} else if ("</tbody>".equals(s.trim())) {
				break;
			}

			if (beginFind) {
				if(s.trim().startsWith("<td><a")){
					rsList.add(findContent(s.trim()));
				}
			}
		}
		
		for (int i = 0; i < rsList.size(); i++) {
			System.out.println(rsList.get(i));
		}
	}

	public String findContent(String html) {
		// 配置html标记。
		Pattern p = Pattern.compile("<(\\S*?)[^>]*>.*?| <.*? />");
		Matcher m = p.matcher(html);

		String rs = new String(html);
		// 找出所有html标记。
		while (m.find()) {
			// 删除html标记。
			rs = rs.replace(m.group(), "");
		}
		return rs;
	}

	public static void main(String[] args) throws IOException {
		new Test001();
	}
}


利用上面的代码,可以将百度风云榜里的内容完整拿出来。
3 楼 mercyblitz 2010-07-23  
javapub 写道
利用Split效率低一些吧,而且利用Split分割的代码量也不少,判断也不少。


在很多地方需要中间结果,再处理。
2 楼 javapub 2010-07-23  
利用Split效率低一些吧,而且利用Split分割的代码量也不少,判断也不少。
1 楼 mercyblitz 2010-07-23  
第一种方法太难了,个人认为做Split的正则分割 >< 之间的好些。

相关推荐

    Java抽取Word及PDF编程

    ### Java抽取Word及PDF编程 #### 一、引言 在日常工作中,处理Word和PDF文档的需求非常普遍,尤其是在企业级应用中。无论是自动化办公流程还是数据处理任务,能够有效地从这些格式的文档中提取信息变得至关重要。...

    Java抽取Word和PDF格式文件

    本篇文章将探讨四种不同的方法来实现Java抽取Word和PDF格式文件。 1. 使用JACOB库 JACOB(Java COM Bridge)是一个允许Java调用COM组件的库。在Java中操作Word和PDF文件时,JACOB通过桥接Java和COM接口来实现。...

    Java抽取Word.rar_Java Word

    在Java编程环境中,抽取Word文档数据内容是一项常见的任务,尤其在数据处理、文档解析或信息提取等场景下。本文将详细讲解如何使用Java API来读取和操作Microsoft Word(.doc或.docx)文件。 首先,Java标准库并...

    HTML2PDF(JAVA).pdf

    总结以上知识点,本文件描述了使用Java和IText库进行HTML到PDF转换的详细步骤,包括了HTML内容的构建、CSS样式的应用、字体处理策略、PDF文件的生成以及资源路径的配置。通过示例代码和说明,可以清楚看到整个转换...

    Java精确抽取网页发布时间

    在实际开发中,为了提高效率和准确性,还可以考虑使用第三方库,如Jsoup,它提供了强大的HTML解析和内容提取功能,有助于简化日期抽取的过程。同时,结合机器学习算法,如自然语言处理和模式识别,可以进一步提升...

    HTMLParser抽取Web网页正文信息

    HTMLParser 是一个强大的工具,用于解析和分析HTML文档,它能帮助我们从网页中抽取主要信息,排除掉无关的导航、广告和版权等噪音内容。这不仅能够优化用户体验,节省浏览时间,还能提高用户获取信息的效率,进而...

    HTMLParser抽取Web网页正文信息.doc

    2. **解析HTML内容**:使用`extractAllNodesThatAre`方法,将HTML文档中的特定标签解析成对象列表。此方法接收一个标签类作为参数,如`LinkTag.class`、`ImageTag.class`等,返回的是该类的实例列表。 3. **数据清洗...

    web网页主内容抽取

    总结,"web网页主内容抽取"项目提供了一个实用的Java解决方案,结合了多种策略来识别和提取网页中的主要信息。对于开发者来说,这是一个学习和研究网页内容抽取技术的好起点,同时也能直接应用于实际项目中。

    Java与XML实现数据抽取

    ### Java与XML实现数据抽取的关键技术与实现方法 #### 一、引言 在当前的信息时代,随着互联网的快速发展,信息共享与数据交换的需求日益增加。XML作为一种强大的数据格式,因其灵活性和可扩展性而在数据交换领域...

    基于JerichoHTMLParser的html信息抽取.pdf

    在给定的文件“基于JerichoHTMLParser的html信息抽取.pdf”中,作者王鸿伟探讨了如何利用Jericho HTML Parser这一Java库进行高效的HTML解析。 Jericho HTML Parser是一款强大的开源HTML解析器,它能够处理不规则和...

    ScalaScraper一个Scala库用于HTML页面抽取内容

    4. **自定义处理逻辑**:除了基本的元素选取和内容抽取,Scala Scraper还允许用户定义自己的处理函数,以处理更复杂的HTML结构和数据格式。 5. **错误处理**:库内建了错误处理机制,帮助开发者优雅地处理网络请求...

    java实现的网页爬虫1.5版本聚焦爬虫抽取网页html

    Java实现的网页爬虫是一种自动化工具,用于从互联网上抓取HTML内容,进而提取有用的信息。在本项目中,我们讨论的是一个特定的版本——"网页爬虫1.5版本",它是一个聚焦爬虫,专门针对网页HTML的抽取。 1. **聚焦...

    基于java的网页抽取工具 Krabber.zip

    总的来说,Krabber作为一款Java网页抽取工具,融合了网络编程、HTML解析、并发处理和数据存储等多个技术领域,为用户提供了自动化抓取和处理网页数据的能力。通过学习和使用Krabber,开发者不仅可以掌握网页抓取的...

    Java抽取Word和PDF格式文件的四种武器.doc

    本文将介绍四种主要的Java库,它们可以帮助开发者有效地抽取Word和PDF文档的内容。 首先,我们来看JACOB(Java COM Bridge)。JACOB是一个Java库,用于连接Java和COM组件,允许Java程序调用Windows API和Microsoft ...

    java源码:网页抽取工具 Krabber.rar

    【Java源码:网页抽取工具Krabber】 在IT领域,网页抽取,也称为网络爬虫或网页抓取,是一项重要的技术,用于自动化地从互联网上获取大量信息。Krabber是一个基于Java编写的网页抽取工具,它允许开发者有效地提取和...

    htmlparser进行网页信息的抽取

    - 创建`Parser`对象:通过`new Parser(url)`或`new Parser(content)`,传入URL或HTML内容来初始化解析器。 - 设置编码:使用`setEncoding()`方法指定HTML文档的字符编码,如`setEncoding("GB2312")`。 - 过滤器:...

    基于统计的网页正文信息抽取

    总的来说,基于统计的网页正文信息抽取是通过统计学习方法从HTML结构中自动识别主要内容的过程,它依赖于有效的特征工程和模型训练。结合htmlparser和Eclipse这样的工具,可以构建出高效且适应性强的正文抽取系统,...

    基于Java的网页抽取工具 Krabber.zip

    【Java网页抽取工具Krabber】是一个用于从互联网上抓取和处理HTML内容的强大工具,主要针对那些希望从大量网页中提取结构化信息的开发者。Krabber利用Java的灵活性和跨平台特性,为用户提供了一个高效且易于使用的...

    HTML抽取器Xsoup.zip

    Xsoup是基于Jsoup开发的HTML抽取器,提供了XPath支持。 相比另一个常用的基于XPath的HTML抽取器HtmlCleaner,Xsoup有较大的性能优势,解析时间和抽取时间都只有HtmlCleaner的一半。同时Xsoup提供全面的XPath解析...

    网页正则标签抽取例子

    接下来,我们需要对网页内容进行解析,通常可以使用Jsoup库,它是一个Java的HTML解析器。通过Jsoup,我们可以方便地获取到HTML文档的文本内容,然后使用上述编译好的正则模式进行匹配: ```java Document doc = ...

Global site tag (gtag.js) - Google Analytics