- 浏览: 800522 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (480)
- Spring (12)
- Hibernate (8)
- Struts2 (4)
- Java 基础-JDK-类-接口-URI-专题研究 (27)
- 线程、线程池、多线程高并发高可用、Socket通信 (15)
- Oracle数据库 (20)
- 一般-前端js-html-其它 (25)
- JYSK-互联网金融、金融科技、支付、公司、新闻等等 (8)
- Ajax-jQuery开源框架 (7)
- Json-轻量级的数据交换格式 (14)
- JavaScript (15)
- Jsp、Servlet、Servlet+JSP+JavaBean开发模式(MVC) (18)
- Html-JavaScript-前端-调用接口 (12)
- Sql Server 2005 (6)
- 正则表达式 (2)
- Java tools (18)
- 加签与验签、加密与解密 (3)
- Ajax技术核心-xmlHttpRequest(简称XHR) (6)
- xml-数据交换格式 (3)
- 信息采集 (1)
- Http - Https - HttpClient - httpCore-SSL-TLS (10)
- HtmlParser (2)
- 标签库 (1)
- SMS (2)
- jxl-导入导出 (4)
- poi-导入导出 (2)
- 定时器Timer+Quartz (6)
- 工作流引擎JBPM3.2.3 (4)
- 工作流引擎JBPM4 (0)
- 数据源-JNDI (0)
- tomcat、weblogic等应用服务器 (6)
- 工作流引擎jbpm5 (1)
- 搜索引擎Lucene (1)
- ant (1)
- 大数据-HBase (2)
- bigtable (0)
- 数据库设计 (4)
- jquery tab (0)
- mybatis (5)
- jquery ui 1.10.3 (5)
- Jboss7 (1)
- 规则引擎drools (0)
- 工作流引擎Activiti5 (0)
- 数据库-用户自定义函数 (0)
- 数据库-存储过程 (2)
- 数据库-视图 (0)
- 数据库-触发器 (0)
- 数据库-sql (2)
- highcharts-图表工具 (1)
- sql server 2008 (6)
- 诗词-工作室 (2)
- 数据割接 (1)
- GIS-地理信息系统 (2)
- RS-遥感技术 (1)
- GPS-全球定位系统 (1)
- java整合flex_RIA开发 (3)
- C#编程语言 (5)
- webservice_axis2_cxf_soap_wsdl (2)
- sql语句 (3)
- Flex_WebService_GIS (25)
- PHP编程语言 (0)
- ExtJS4.2 (1)
- Spring mvc (5)
- EasyUI1.4.2 (16)
- 日期时间工具类 (4)
- 随机数 (1)
- Arcgis api for js (0)
- Mysql数据库 (9)
- 移动互联网 java html5/flash socket netty (0)
- API接口 (1)
- AndroidStudio (0)
- Git (2)
- Maven (5)
- IDEA (0)
- 大数据-Hadoop (2)
- JPA (0)
- Spring boot (4)
- JSF (0)
- nginx_lua_module_redis (2)
- Activiti (1)
- bootstrap (1)
- AngularJS (10)
- 数据库-索引 (1)
- Linux及其连接工具SSH (4)
- java日志管理 (2)
- islider滑动控件 (1)
- jquery (1)
- 异常处理Exception (1)
- 秒杀与类秒杀系统 (1)
- 连接数据库、数据库连接池 (4)
- 数据库-临时表 (1)
- 软件设计模式-单例、多例、代理、工厂、观察者 (3)
- 集合框架 (5)
- 人工智能--Artificial intelligence、神经网络算法、机器学习 (1)
- 分布式应用 (1)
- SOA服务-Dubbo框架-Thrift框架 (2)
- Zookeeper分布式服务框架 (2)
- intellij idea (1)
- python编程语言 (0)
- 消息队列_MQ (0)
- 消息队列_RabbitMQ (2)
- 消息队列_ActiveMQ (1)
- 消息队列_Kafka (2)
- 缓存_Redis (4)
- 缓存_Memcache (0)
- 缓存_Ehcache (0)
- ivy-ivyde (1)
- google-protocol buffers (1)
- 正向代理-正向代理服务器 (1)
- 反向代理-反向代理服务器 (1)
- JVM内存模型 (0)
- Thunder框架 (1)
- NIO-非阻塞式IO (0)
- 软件测试、性能测试 (1)
- 序列化、Serializable接口、Externalizable接口 (3)
- 线程池-ExecutorService-ThreadPoolExecutor (1)
- web.xml (1)
- java开发-java工具-实用工具网站 (6)
- 医疗 (1)
- Filter-过滤器 (2)
- Unicode码-双字节字符编码 (1)
- OpenResty (1)
- 计算机网络 (1)
- eclipse_myeclipse_intellij idea (3)
- Enum (1)
- 大数据--Big Data (1)
- 云计算--Cloud computing (1)
- Elastic-Job (1)
- Redis (2)
- 文件流-IO操作 (6)
- 计算机基础知识 (1)
- Hessian-二进制RPC协议 (1)
- String类 (3)
- BigDecimal类 (1)
- java重要接口 (1)
- ReactJS (1)
- 跨域问题 (0)
- Map (1)
- 注解 (1)
- ASCII码-单字节字符编码 (1)
- 微服务、微服务架构 (2)
- RPC协议、RPC服务、RPC框架 (0)
- java反射 (1)
- java项目之classpath (1)
- 经典算法-树 (1)
- listener-监听器 (1)
- Interceptor-拦截器 (1)
- pojo javabean (2)
- 计算机科学与技术-进阶 (1)
- 代码规范与文档编写 (1)
- UML-统一建模语言 (1)
- 对接微信、支付宝 (3)
- 压力测试 (1)
- 办公软件-Excel (1)
- 办公软件-PPT (0)
- UTF8、GBK编码 (1)
- 微服务架构:Spring Cloud架构-Dubbo架构 (6)
- Nginx (1)
- 点滴业务 (1)
- form表单-json数据-转换与接口调用 (1)
- Junit单元测试 (1)
- 大数据-Spark (1)
- 大数据-Storm (1)
- 数据库事务-Spring事务 (0)
- elasticsearch (1)
- windows (1)
最新评论
import org.htmlparser.Node;
import org.htmlparser.NodeFilter;
import org.htmlparser.Parser;
import org.htmlparser.PrototypicalNodeFactory;
import org.htmlparser.filters.NodeClassFilter;
import org.htmlparser.filters.OrFilter;
import org.htmlparser.tags.Div;
import org.htmlparser.tags.ImageTag;
import org.htmlparser.tags.LinkTag;
import org.htmlparser.util.NodeList;
import org.htmlparser.util.ParserException;
public class OrFilterForIamgeOrLinkOrFrame {
//只能获取链接和链接标题,时间无法获取
public static void main(String[] args) throws ParserException {
getImage("http://www.ahtba.org.cn/infomation/");
}
public static void getImage(String url) throws ParserException {
Parser parser = new Parser(url);
parser.setEncoding("gbk");
PrototypicalNodeFactory pnfPrototypicalNodeFactory = new PrototypicalNodeFactory();
pnfPrototypicalNodeFactory.registerTag(new Div());
parser.setNodeFactory(pnfPrototypicalNodeFactory);
NodeFilter filter1 = new NodeClassFilter(LinkTag.class);
NodeList nodelist = parser.extractAllNodesThatMatch(filter1);
for (Node node : nodelist.toNodeArray()) {
if (node instanceof LinkTag) {
LinkTag link = (LinkTag) node;
if (link != null) {
System.out.println("地址:" + link.getLink()+"\t标题:"+link.getLinkText());
}
}
}
}
}
//***************************************//
//同样可以获得标题、地址,但地址不够完整
public void getHERF(String html) {
// 创建Parser对象根据传给字符串和指定的编码
Parser parser = Parser.createParser(html, "GBK");
// 创建HtmlPage对象HtmlPage(Parser parser)
HtmlPage page = new HtmlPage(parser);
try {
// HtmlPage extends visitor,Apply the given visitor to the current
// page.
parser.visitAllNodesWith(page);
} catch (ParserException e1) {
e1 = null;
}
// 所有的节点
NodeList nodelist = page.getBody();
// 建立一个节点filter用于过滤节点
NodeFilter filter = new TagNameFilter("A");
// 得到所有过滤后,想要的节点
nodelist = nodelist.extractAllNodesThatMatch(filter, true);
for (int i = 0; i < nodelist.size(); i++) {
System.out.println("\n");
LinkTag link = (LinkTag) nodelist.elementAt(i);
// 链接地址
System.out.println(link.getAttribute("href"));
// 链接名称
System.out.println(link.getStringText());
}
}
import org.htmlparser.NodeFilter;
import org.htmlparser.Parser;
import org.htmlparser.PrototypicalNodeFactory;
import org.htmlparser.filters.NodeClassFilter;
import org.htmlparser.filters.OrFilter;
import org.htmlparser.tags.Div;
import org.htmlparser.tags.ImageTag;
import org.htmlparser.tags.LinkTag;
import org.htmlparser.util.NodeList;
import org.htmlparser.util.ParserException;
public class OrFilterForIamgeOrLinkOrFrame {
//只能获取链接和链接标题,时间无法获取
public static void main(String[] args) throws ParserException {
getImage("http://www.ahtba.org.cn/infomation/");
}
public static void getImage(String url) throws ParserException {
Parser parser = new Parser(url);
parser.setEncoding("gbk");
PrototypicalNodeFactory pnfPrototypicalNodeFactory = new PrototypicalNodeFactory();
pnfPrototypicalNodeFactory.registerTag(new Div());
parser.setNodeFactory(pnfPrototypicalNodeFactory);
NodeFilter filter1 = new NodeClassFilter(LinkTag.class);
NodeList nodelist = parser.extractAllNodesThatMatch(filter1);
for (Node node : nodelist.toNodeArray()) {
if (node instanceof LinkTag) {
LinkTag link = (LinkTag) node;
if (link != null) {
System.out.println("地址:" + link.getLink()+"\t标题:"+link.getLinkText());
}
}
}
}
}
//***************************************//
//同样可以获得标题、地址,但地址不够完整
public void getHERF(String html) {
// 创建Parser对象根据传给字符串和指定的编码
Parser parser = Parser.createParser(html, "GBK");
// 创建HtmlPage对象HtmlPage(Parser parser)
HtmlPage page = new HtmlPage(parser);
try {
// HtmlPage extends visitor,Apply the given visitor to the current
// page.
parser.visitAllNodesWith(page);
} catch (ParserException e1) {
e1 = null;
}
// 所有的节点
NodeList nodelist = page.getBody();
// 建立一个节点filter用于过滤节点
NodeFilter filter = new TagNameFilter("A");
// 得到所有过滤后,想要的节点
nodelist = nodelist.extractAllNodesThatMatch(filter, true);
for (int i = 0; i < nodelist.size(); i++) {
System.out.println("\n");
LinkTag link = (LinkTag) nodelist.elementAt(i);
// 链接地址
System.out.println(link.getAttribute("href"));
// 链接名称
System.out.println(link.getStringText());
}
}
相关推荐
例如,如果要抓取所有的`<a>`标签及其链接,可以这样修改代码: ```java while (iterator.hasMoreNodes()) { TagNode tagNode = (TagNode) iterator.nextNode(); if ("a".equalsIgnoreCase(tagNode.getTagName())...
例如,你可以通过解析HTML来获取所有的链接、图片地址、标题等信息。同时,它也可以与BeautifulSoup等第三方库结合使用,提供更高级的解析功能。 总结,Python的HTMLParser库为处理HTML文档提供了一个基础而灵活的...
通常,这些链接可能是`<a>`标签,带有特定的类名或URL模式。通过在`handle_starttag`中检查`<a>`标签,并分析其属性,可以找出分页链接。然后,你可以使用这些链接进行下一步的网络请求和解析。 4. **源码分析** ...
链接通常由`<a>`标签定义,其`href`属性指向目标资源。HTMLParser能够识别`http`、`https`、`ftp`、`mailto`等多种类型的URL,帮助开发者获取网页中的外部链接、内部链接以及电子邮件地址。这在创建网络爬虫时非常...
通过调用HTMLParser的API,可以轻松获取网页中的链接、文本内容等元素,进而进行进一步的数据处理或分析。 ### 工作原理 HTMLParser的核心功能在于解析HTML文档并构建DOM树。DOM(Document Object Model)是一种...
首先,使用HtmlParser解析主页的HTML代码,然后查找所有的`<a>`标签,提取其中的`href`属性值以及相邻的文本节点作为新闻标题。接着,对提取到的链接进行清洗,最后将清洗后的数据存储到SQL数据库中。 ##### 4.1 ...
通过识别特定的HTML标签,比如标题(`<h1>`至`<h6>`)、段落(`<p>`)、列表(`<ul>`和`<ol>`)等,我们可以提取出网页的主要内容。 **图片提取**则需要识别HTML中的`<img>`标签,特别是`src`属性,这通常指向图片...
例如,我们可以设置监听器,当遇到特定的HTML标签(如`<title>`或`<a>`)时,执行相应的处理函数,收集新闻信息。 4. **Java调用Excel API**:为了将爬取的新闻数据写入Excel,项目中可能使用了Apache POI库。这是...
然后,使用HTMLParser解析这个内容,查找包含基金数据的表格标签(如`<table>`),进一步找到表头(`<th>`)和数据单元格(`<td>`)。通过分析表格结构,可以提取出每行数据,并将其转换为"FundTableBean"实例。 在...
标题“获取指定网页上所有链接”所涉及的知识点主要集中在网页数据抓取和解析领域,这一过程通常称为网络爬虫或网页抓取。下面将详细解释这个过程,并结合描述中的“小东东”(即简单工具)进行阐述。 首先,我们要...
2. **WebParser**:可能是一个简单的网页抓取器,利用HtmlParser解析网页,提取所需信息,例如新闻标题、链接等。 开发者可以打开`AnalyzeHtml.sln`,编译并运行这两个项目,以了解HtmlParser的具体使用方法和实际...
如果你使用Maven,可以在pom.xml文件中添加以下依赖项:\n```xml\n<dependency>\n <groupId>org.htmlparser</groupId>\n <artifactId>htmlparser</artifactId>\n <version>3.1</version>\n</dependency>\n```\n确保...
1. **网页爬虫**:HTMLParser可以用于抓取网页内容,提取关键信息,如链接、标题、文章正文等。 2. **HTML清理**:可以用来标准化或规范化不规则的HTML代码,使其符合标准格式。 3. **数据分析**:在数据挖掘项目中...
- 从每个Element对象中,我们可以调用`attr("href")`获取链接的URL,调用`text()`获取显示的文本(链接标题)。 4. **获取指定博客文章内容**: - 如果博客文章有特定的标记,如class或id,我们可以利用这些标记...
例如,如果你想要提取所有的链接(`<a>`标签),你可以检查`Tag`类型并处理`<a>`标签。 为了实现更复杂的爬虫,你可能需要添加额外的功能,比如错误处理、重试机制、URL队列、多线程下载、以及对CSS选择器的支持,...
而`readTextAndLinkAndTitle`方法则创建了过滤器,只保留了文本节点、链接(`<a>`标签)和标题(`<title>`标签),然后遍历这些节点并打印相关信息。 三、核心概念 1. `Parser`: 是HTMLParser的核心类,负责解析...
string html = "<h1>标题</h1><p>这是HTML内容</p>"; // 解析HTML并添加到PDF HTMLWorker htmlWorker = new HTMLWorker(document); htmlWorker.StartDocument(); StringReader sr = new StringReader(html); ...
例如,当遇到`<a>`标签时,可以获取链接的URL;当遇到`<img>`标签时,可以获取图片的源地址。 5. **错误处理和容错性**:HTMLParser通常具有一定的容错性,能处理不规范的HTML代码,因为它设计的初衷是处理真实世界...
【标题】"基于Htmlparser的天气预报程序"是一款利用Htmlparser库解析网页HTML内容,获取并展示天气预报信息的应用程序。这个程序的核心是通过解析指定天气网站的HTML页面,提取出温度、湿度、风向等关键天气数据,...
例如,查找所有的`<a>`标签以获取所有链接。 7. **异常处理**: 确保处理可能的网络错误,如连接失败、超时或无效响应。 8. **资源释放**: 请求完成后,记得关闭HttpEntity的输入流,以及HttpClient对象,避免...