`
deepfuture
  • 浏览: 4398032 次
  • 性别: Icon_minigender_1
  • 来自: 湛江
博客专栏
073ec2a9-85b7-3ebf-a3bb-c6361e6c6f64
SQLite源码剖析
浏览量:80055
1591c4b8-62f1-3d3e-9551-25c77465da96
WIN32汇编语言学习应用...
浏览量:69999
F5390db6-59dd-338f-ba18-4e93943ff06a
神奇的perl
浏览量:103293
Dac44363-8a80-3836-99aa-f7b7780fa6e2
lucene等搜索引擎解析...
浏览量:285633
Ec49a563-4109-3c69-9c83-8f6d068ba113
深入lucene3.5源码...
浏览量:15001
9b99bfc2-19c2-3346-9100-7f8879c731ce
VB.NET并行与分布式编...
浏览量:67498
B1db2af3-06b3-35bb-ac08-59ff2d1324b4
silverlight 5...
浏览量:32099
4a56b548-ab3d-35af-a984-e0781d142c23
算法下午茶系列
浏览量:45965
社区版块
存档分类
最新评论

lucene-使用htmlparser提取网页特定链接

阅读更多

1、以EMAIL为例:(以这个网页为例http://www.qunar.com/site/zh/Cooperate_4.shtml)

package extract;

import org.htmlparser.Node;
import org.htmlparser.NodeFilter;
import org.htmlparser.Parser;
import org.htmlparser.filters.NodeClassFilter;
import org.htmlparser.tags.LinkTag;
import org.htmlparser.util.NodeIterator;
import org.htmlparser.util.NodeList;
import org.htmlparser.util.ParserException;

public class extracthtmllinkemail {

/**
* @param args
*/
public static String getText(String f){
StringBuffer sb=new StringBuffer();
try {
Parser parser=new Parser(f);
parser.setEncoding("UTF-8");
NodeFilter filter=new NodeClassFilter(){
public boolean accept(Node node){
return (LinkTag.class.isAssignableFrom(node.getClass())&&((LinkTag)node).isMailLink());
}
};

NodeList links=new NodeList();
for (NodeIterator e=parser.elements();e.hasMoreNodes();){
e.nextNode().collectInto(links, filter);
}
for (int i=0;i<links.size();i++){
LinkTag linktag=(LinkTag)links.elementAt(i);
sb.append("\n|"+linktag.getLinkText()+"|=>"+linktag.getLink());
}

} catch (ParserException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return sb.toString();
}
public static void main(String[] args) {
// TODO Auto-generated method stub
String s=getText("./htmls/Qunar_com.htm");
System.out.print(s);
}
}
效果如下:


|Adservice@qunar.com|=>adservice@qunar.com
|adservice@qunar.com|=>adservice@qunar.com

2、以(www.hao123.com)为例,提取js链接

代码

package extract;

import org.htmlparser.Node;
import org.htmlparser.NodeFilter;
import org.htmlparser.Parser;
import org.htmlparser.filters.NodeClassFilter;
import org.htmlparser.tags.LinkTag;
import org.htmlparser.util.NodeIterator;
import org.htmlparser.util.NodeList;
import org.htmlparser.util.ParserException;

public class extracthtmllinkemail {

/**
* @param args
*/
public static String getText(String f){
StringBuffer sb=new StringBuffer();
try {
Parser parser=new Parser(f);
parser.setEncoding("GB2312");
NodeFilter filter=new NodeClassFilter(){
public boolean accept(Node node){
return (LinkTag.class.isAssignableFrom(node.getClass())&&((LinkTag)node).isJavascriptLink());
}
};

NodeList links=new NodeList();
for (NodeIterator e=parser.elements();e.hasMoreNodes();){
e.nextNode().collectInto(links, filter);
}
for (int i=0;i<links.size();i++){
LinkTag linktag=(LinkTag)links.elementAt(i);
sb.append("\n|"+linktag.getLinkText()+"|=>"+linktag.getLink());
}

} catch (ParserException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return sb.toString();
}
public static void main(String[] args) {
// TODO Auto-generated method stub
String s=getText("./htmls/hao123.htm");
System.out.print(s);
}
}
效果如下:


|我的hao123|=>void(0);
|我喜欢的网站:|=>void(0)
|我定制的网站:|=>void(0)

分享到:
评论

相关推荐

    搜索引擎Lucene Herritrix htmlparser

    开发者可能会在这里看到如何设置Heritrix的爬虫规则,如何使用Spring来组织和管理各个组件,以及如何使用htmlparser来解析抓取的网页内容并准备它们供Lucene索引。 综上所述,这个项目涉及到的关键技术包括使用...

    lucene_JE分词_htmlParser--jar包

    标题中的“lucene_JE分词_htmlParser--jar包”表明这是一个包含与Lucene、JE分词和HTMLParser相关的Java库的集合。这些组件在IT领域中有着特定的应用,特别是对于文本处理和搜索引擎构建。 首先,让我们详细了解...

    解密搜索引擎技术实战:Lucene&Java精华版

    - **2.3.4 URL地址提取**:探讨了如何有效地从网页中提取链接信息。 - **2.3.5 抓取JavaScript动态页面**:介绍了处理动态网页抓取的技术。 - **2.3.6 抓取即时信息**:讲解了如何捕获实时更新的信息。 - **...

    一个专业搜索公司关于lucene+solar资料(2)

    ContentExtractor是HtmlParser中用于提取网页正文的一个类,通过实现特定的方法可以定制化地提取网页中的正文内容。以下是使用ContentExtractor的一个简单示例: ```java public static void main(String[] args) ...

    Lucene实现的数码产品垂直搜索引擎

    总的来说,“Lucene实现的数码产品垂直搜索引擎”是一个综合运用了Lucene全文检索能力、HTMLParser的网页解析以及DWZ前端框架的项目,旨在提供高效、精准的数码产品搜索服务。通过这样的垂直搜索引擎,用户可以更快...

    自己动手写网络爬虫(基本全)

    **6.4 优化使用Lucene** - **优化措施:** - 索引优化 - 查询优化 - 实现时间加权排序 - 实现字词混合索引 - 定制Similarity - 定制Tokenizer **6.5 查询大容量索引** - **高效查询策略:** 如何高效地查询大...

    自己动手写搜索引擎

    书中详细阐述了如何使用HTMLParser从网页中提取有用的信息,并将其转化为可被搜索引擎索引的形式。 #### 十一、DWR - Direct Web Remoting (DWR) 是一种简化Ajax编程的技术。在本章节中,作者介绍了如何利用DWR...

    搜索引擎核心技术与实现

    - **提取垂直行业信息**:探讨了在医疗、旅游等行业中如何提取特定信息。 - **流媒体内容提取**:涵盖了音频流和视频流内容的提取方法。 - **存储提取内容**:介绍了将提取的内容存入数据库或写入维基等存储方式。 ...

    高清彩版 自己动手写搜索引擎

    - **4.1.1 HtmlParser介绍**:介绍HtmlParser的功能及其使用方法。 - **4.1.2 结构化信息提取**:讲解如何从HTML中提取结构化信息。 - **4.1.3 网页去噪**:去除网页中的广告、导航栏等无用信息。 - **4.1.4 ...

    crawler爬虫资料

    URL管理器负责维护待抓取的网址队列,下载器负责获取网页内容,解析器则分析网页内容,提取所需信息,并可能发现新的链接,循环这一过程。 2. **Java爬虫项目**: - `spider`:可能是一个Java爬虫框架或项目的名称...

    FlySearch-开源

    在文件搜索场景中,HTMLParser可以帮助提取网页中的文本内容,将其转化为可供Lucene索引的形式。这样,即使搜索目标隐藏在HTML标签中,也能被有效地找到。 Highlighter是另一个重要的组件,用于高亮显示搜索结果中...

    z_mysearch

    在"z_mysearch"中,HTMLParser被用来提取网页的关键词、标题、描述等重要信息,这些信息对于搜索引擎理解和排名网页至关重要。通过定制解析规则,可以确保关键信息的准确性,同时过滤掉无用或重复的内容,提高搜索...

    搜索引擎的开发论文(毕业设计)

    在本文中,我们将深入探讨如何构建一个针对手机信息的垂直搜索引擎,该系统利用Eclipse和Dreamweaver作为开发工具,结合Heritrix、HTMLParser、MySQL数据库、Lucene以及JSP技术,为用户提供高效且精准的搜索体验。...

    apache-nutch-2.3-src.zip

    5. **分词和索引**:Nutch 内置了Lucene库,用于对抓取的网页内容进行分词和创建倒排索引,便于后续的搜索操作。 6. **国际化支持**:Nutch 支持多种语言的网页抓取和处理,包括中文,通过插件机制可以添加新的语言...

    nutch 1.5的源代码

    2. **链接解析**:Nutch使用`Parser`接口解析下载的HTML文档,提取出其中的链接、标题、内容等元数据。`HTMLParser`实现了这个接口,可以解析HTML并生成`TextDocument`对象。 3. **分词与索引**:Nutch使用Apache ...

    简单搜索引擎分析与开发毕业设计论文(20210809123532).pdf

    在本文中,搜索引擎的开发注重于实用性和效率,使用了Eclipse集成开发环境进行代码编写和管理,同时利用了Htmlparser工具来解析HTML文档,Htmlparser可以方便地从HTML文件中提取文本和链接信息,这对网络爬虫的开发...

    cms需求分析

    该项目采用了JavaSE、JavaWeb等技术栈作为基础,结合了JSP/Servlet、Lucene、MyBatis、HttpClient、HtmlParser等技术组件。这些技术的选择考虑到了系统的灵活性、扩展性和性能需求。 - **JSP/Servlet**:用于构建...

Global site tag (gtag.js) - Google Analytics