HttpParser标签类的扩展
有时候我们要解析的HTML标签,得到某个标签中的内容,但是这个标签类是HttpParser中没有提供的。这时候我们可以自定义这个标签类,然后就可以同HttpParser中的那些一样使用了。方法如下:
第一步:创建一个类(你要解析的html中的那个标签的名字就是类名,并让他继承CompositeTag)
如:我们要解析html中的<font>标签,就创建一个Font类
//除了类名,其他的直接复制即可,都是固定的不变的
class Font extends CompositeTag {
private static final long serialVersionUID = 1L;
private static final String mIds[] = { "font" };
private static final String mEndTagEnders[] = { "font" };
public Font() { }
public String[] getIds() { return mIds; }
public String[] getEndTagEnders() { return mEndTagEnders; }
第二步:直接注册使用即可。如下:我们在另外一个类中使用那个Font类作为标签解析html
//插入以下代码即可将<font>标签间的正文打印出来
Parser parser=Parser.createParser(tqyjHtml, "utf-8");
//注册新的节点解析器
PrototypicalNodeFactory p = new PrototypicalNodeFactory();//创建工厂
p.registerTag(new Font()); //把font标签(我们上面创建的类)登记一下
parser.setNodeFactory(p); //放工厂里,以后就可以直接用了
//获取所有font标签
NodeFilter filter = new NodeClassFilter(Font.class);
NodeList nodeList=parser.extractAllNodesThatMatch(filter);
//遍历所有font标签,将font标签中的正文内容打印出来
for(int i=0;i<nodeList.size();i++){
System.out.println(nodeList.elementAt(i).toPlainTextString());
}
分享到:
相关推荐
在Java编程领域,HttpClient和HttpParser是两个非常重要的库,特别是在进行网络爬虫开发时。这两个库分别提供了HTTP客户端通信和HTTP协议解析的功能,对于构建高效、可靠的网络数据抓取系统至关重要。 HttpClient是...
HttpParser模块提供了解析HTTP请求和响应头、主体内容等功能,能够处理HTTP/1.1协议,并可能扩展支持HTTP/2。 2. **多线程支持**: Java HttpParser支持多线程环境,这意味着它可以在多个线程间安全地使用,这对于...
解析html
HTTPParser库帮助开发者解析这些元素,将其转化为可操作的对象,便于进行后续的业务处理。 HTTPParser库的核心功能包括: 1. **请求解析**:能够解析HTTP请求行,提取请求方法、URL和HTTP版本信息。同时,它还能...
在"httpparser-master"这个压缩包中,可能包含了项目的源代码、测试文件、文档和配置文件等。开发者可以通过阅读源代码了解HTTPParser的具体实现,以及它如何与网络爬虫的其他部分集成。如果包含README文件,那么这...
- **UrlParser类**:根据HTTPParser库解析HTTP响应,获取HTML内容。 - **Page类**:表示抓取到的网页,包含URL、HTML内容和提取的数据。 - **LinkExtractor类**:从HTML中提取出链接,供URL管理器使用。 - **...
它不使用任何系统调用及内存分配的功能,并且不缓冲任何数据,可以被随时中断使用。根据你的系统架构,它处理一个请求只消耗约40字节(而对于网络服务器就是每个连接)。 功能: ... 标签:HTTPParser
在ZewoGraveyard-HTTPParser-20cda8c这个压缩包中,可能包含了HTTPParser项目的源代码、文档、示例代码和测试用例。开发者可以通过研究这些内容来了解如何在自己的项目中集成和使用这个库。通常,源代码会提供API...
本资源是一个名为`httpparser`的Python库,版本为0.3.11,适用于Python 3.5版本,并且构建为cp35m(即CPython 3.5的优化版本),专为macOS 10.6 Intel架构设计。`.whl`文件是Python的二进制分发格式,它允许用户直接...
资源来自pypi官网。 资源全名:httpparser-0.3.11-cp35-cp35m-macosx_10_6_intel.whl
HTTPParser HTTPParser是用于Swift 3.0的HTTP(RFC 2616)解析器。 功能异步解析处理持久流(保持活动状态)解码分块编码防止缓冲区溢出att HTTPParser HTTPParser是Swift 3.0的HTTP(RFC 2616)解析器。 功能异步...
Socket类允许我们创建一个连接到特定IP地址和端口的套接字,然后通过输入输出流进行通信。在这个HTTP解析的例子中,我们将通过Socket接收服务器的HTTP响应,并对其进行解析。 `jetty`是一个流行的Java Web服务器和...
... ...解析器会识别这些部分的边界,例如通过换行符(\n)和双换行符(\n\n)来区分请求头和消息体。 ...状态行包含状态码和响应短语。解析器需要准确地提取这些信息,以理解请求的意图或响应的状态。...
webserver-libev-httpparser 它是一个使用 C 语言编写的 http 服务器库,使用 libev ( ) 和 Ryan Dahl 的 http 解析器 (参见 )。关于 lighttz ( ) 编译: cmake CMakeLists.txt make
HttpParser使用demo
Plain-Old-C HTTP解析器 最初是为内部使用而实现的,以便与Linux和FreeBSD的事件驱动API的网络接口配合使用,但是我发现自己经常使用它。... 您可以在任何地方插入插件进行测试。 说明文件: : 它正在积极发展中。
要在节点中使用,请使用monkeypatch HTTPParser。 // Monkey patch before you require http for the first time. process . binding ( 'http_parser' ) . HTTPParser = require ( 'http-parser-js' ) . ...
...在本文中,我们将深入探讨cpp-libuhttpd的关键特性和使用方法,以及如何将其集成到你的项目中。 **一、cpp-libuhttpd的核心组件** 1. **libev**:这是一个高度可移植的事件库,用于处理异步事件。...
在Android应用开发中,使用外部或自定义的JAR包是一种常见的做法,这可以扩展应用程序的功能,提供网络连接、数据编码解码等服务。这里提到的压缩包包含了多个与网络通信相关的库,如`commons-httpclient`,以及其他...