package com.web.test;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import org.htmlparser.NodeFilter;
import org.htmlparser.Parser;
import org.htmlparser.filters.NodeClassFilter;
import org.htmlparser.filters.OrFilter;
import org.htmlparser.tags.TableColumn;
import org.htmlparser.tags.TableRow;
import org.htmlparser.tags.TableTag;
import org.htmlparser.util.NodeList;
import org.htmlparser.util.ParserException;
/**
* 解析HTML
* @author chenxiaobing
*
*/
public class ReadHtml {
public static void main(String[] args) throws IOException {
//1.网页HTML
String strUrl="http://www.usd-cny.com/";
URL url=new URL(strUrl);
InputStreamReader isr=new InputStreamReader(url.openStream());
BufferedReader br=new BufferedReader(isr);
//2.本地HTML
// File f=new File("fortest.htm");
//输入流
// InputStreamReader isr1=new InputStreamReader(new FileInputStream(f));
// BufferedReader br=new BufferedReader(isr1);
//获取html转换成String
String s;
String AllContent="";
while((s=br.readLine())!=null)
{
AllContent=AllContent+s;
}
//使用后HTML Parser 控件
Parser myParser;
NodeList nodeList = null;
myParser =Parser.createParser(AllContent, "utf-8");
NodeFilter tableFilter = new NodeClassFilter(TableTag.class);
OrFilter lastFilter = new OrFilter();
lastFilter.setPredicates(new NodeFilter[] { tableFilter });
try {
//获取标签为table的节点列表
nodeList =myParser.parse(lastFilter);
//循环读取每个table
for (int i = 0; i <=nodeList.size(); i++) {
if (nodeList.elementAt(i)instanceof TableTag) {
TableTag tag = (TableTag)nodeList.elementAt(i);
System.out.println(tag.getChildrenHTML());
System.out.println("-----------------------------------------------------");
/* TableRow[] rows =tag.getRows();
System.out.println("----------------------table "+i+"--------------------------------");
//循环读取每一行
for (int j = 0; j <rows.length; j++) {
TableRow tr =(TableRow) rows[j];
TableColumn[] td =tr.getColumns();
//读取每行的单元格内容
for (int k = 0; k< td.length; k++) {
System.out.println(td[k].getStringText());//(按照自己需要的格式输出)
}
}*/
}
}
} catch (ParserException e) {
e.printStackTrace();
}
}
}
分享到:
相关推荐
解析HTML表格的基本思路是通过`libxml2dom`获取HTML文档对象,然后定位到具体的表格元素,并从中提取所需数据。这里我们定义了一个名为`parse_tables`的函数,该函数接受三个参数: 1. `source`: 包含源代码的字符...
在本主题“正则取html中table中td中的值”中,我们将探讨如何利用C#编程语言结合正则表达式来从HTML文档的表格(table)中提取td(表格数据单元格)内的内容。这对于网页爬虫、数据提取或自动化测试等场景非常实用。...
1. **解析表格数据**:这通常涉及到读取表格数据源,可能是从数据库查询结果、CSV文件或者内存中的数据结构。例如,你可以使用`System.Data.DataTable`类来存储表格数据。 2. **构建HTML结构**:HTML表格由`<table>...
在本文中,我们将深入探讨如何使用Jsoup这个Java库来解析HTML文档,特别是提取HTML表格(table)中的文本信息。Jsoup是一个强大的库,它提供了方便的API来处理HTML,包括解析、查找、修改和输出HTML内容。让我们通过...
"根据jxl,对html中的table进行导出excel"这个标题所涉及的技术点主要围绕两个核心部分:一是如何解析HTML中的table元素,二是如何利用Java的jxl库将这些数据导出到Excel文件中。 首先,HTML表格是由`<table>`标签...
这篇博客"html-把XML文件加载到table"探讨的是如何利用JavaScript和DOM操作,将XML数据动态地展示在HTML表格中。这种技术对于网页应用中的数据展示和交互性非常有用,尤其适用于数据密集型的项目。 首先,我们需要...
HTML到表格工具通过解析HTML文件中的表格结构,将其转换成Excel的单元格格式,从而解决了这个问题。 在使用该工具时,用户首先需要安装提供的`setup.exe`文件。这个执行文件是安装程序,会将所有必要的组件添加到...
HTML表格是网页设计中不可或缺的一部分,它用于组织和呈现数据,使其更易于理解和解析。本文将深入探讨HTML语言中`<table>`元素的用法,包括如何创建基本表格,以及如何通过各种属性来定制表格的外观和行为。 首先...
这个过程涉及到解析HTML表格、格式化数据以及创建可下载的文件。下面我们将深入探讨实现这一功能的具体步骤和知识点。 1. **HTML表格的基本结构** HTML表格由`<table>`元素定义,包含`<thead>`(表头)、`<tbody>`...
《Python库:html-table-extractor-1.2.0的深度解析》 在Python的世界里,数据处理是一项至关重要的任务,而HTML表格的提取则在数据挖掘和网页爬虫领域中占据着一席之地。`html-table-extractor`库正是为了解决这一...
本篇文章将深入探讨如何使用JavaScript解析HTML表格并将其转换为JSON格式,以便于后台存储和处理。 首先,我们需要了解HTML表格的基本结构。HTML表格由`<table>`标签开始,包含一个或多个`<tr>`(表格行)标签,每...
在IT行业中,将HTML表格(HtmlTable)导出为Excel文件是一项常见的需求,尤其是在数据分析、报表生成和数据共享等场景中。本项目提供了一个解决方案,它支持合并单元格和合并行,无需依赖Microsoft Office,这对于...
"Scrollable HTML table" 是一个网页设计和前端开发的主题,它涉及到在HTML中创建可滚动的表格。这样的表格允许用户在数据量过大无法一次性完全展示时,通过滚动条查看所有内容。"Source JS and Example" 表示我们将...
在实际应用中,为了实现这个功能,你需要在HTML页面中引入`tableExport.js`库的文件,并按照文档提供的示例代码进行配置。例如,在`table-export-demo`这个压缩包中,可能包含了一个演示如何使用这个插件的示例项目...
1. **HTML解析**:使用Java库如Jsoup来解析HTML文件,提取需要的数据。Jsoup能够解析HTML文档,并提供一套强大的API来查找、遍历和修改DOM树。例如,你可以根据CSS选择器获取特定的表格元素。 2. **数据结构构建**...
使用`BeautifulSoup`解析HTML文件,找到所有的`<table>`标签。每个`<table>`元素通常包含多行`<tr>`和多个单元格`<td>`或`<th>`。以下是一个基本的解析示例: ```python from bs4 import BeautifulSoup with ...
3. **提高性能**:Div+CSS布局通常比Table布局加载更快,因为浏览器解析CSS比解析Table更高效。 4. **支持响应式设计**:通过CSS的媒体查询功能,转换后的代码更容易实现跨设备兼容,适应不同屏幕尺寸的设备。 5. **...
深入解析HTML语言,首先要理解其基本概念和结构。 1. HTML元素与标签:HTML由一系列的元素组成,每个元素都是由起始标签和结束标签(如`<p>`和`</p>`代表段落)构成,或者为自闭合标签(如`<img>`)。这些标签定义...
在VB.NET编程环境中,开发人员经常需要处理各种文本操作,如解析HTML文件和与外部服务交互,例如调用百度翻译API。本项目提供了一个完整的源码示例,它结合了这两个功能,帮助开发者理解如何在VB.NET中实现类似的...