`
Franciswmf
  • 浏览: 800522 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

htmlparser获取<a></a>链接地址和标题

 
阅读更多
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());  
        }  
    }









分享到:
评论

相关推荐

    java利用htmlparser抓取网页数据

    例如,如果要抓取所有的`&lt;a&gt;`标签及其链接,可以这样修改代码: ```java while (iterator.hasMoreNodes()) { TagNode tagNode = (TagNode) iterator.nextNode(); if ("a".equalsIgnoreCase(tagNode.getTagName())...

    python html parser

    例如,你可以通过解析HTML来获取所有的链接、图片地址、标题等信息。同时,它也可以与BeautifulSoup等第三方库结合使用,提供更高级的解析功能。 总结,Python的HTMLParser库为处理HTML文档提供了一个基础而灵活的...

    htmlparser解析html分页

    通常,这些链接可能是`&lt;a&gt;`标签,带有特定的类名或URL模式。通过在`handle_starttag`中检查`&lt;a&gt;`标签,并分析其属性,可以找出分页链接。然后,你可以使用这些链接进行下一步的网络请求和解析。 4. **源码分析** ...

    HTMLParser

    链接通常由`&lt;a&gt;`标签定义,其`href`属性指向目标资源。HTMLParser能够识别`http`、`https`、`ftp`、`mailto`等多种类型的URL,帮助开发者获取网页中的外部链接、内部链接以及电子邮件地址。这在创建网络爬虫时非常...

    java htmlparser

    通过调用HTMLParser的API,可以轻松获取网页中的链接、文本内容等元素,进而进行进一步的数据处理或分析。 ### 工作原理 HTMLParser的核心功能在于解析HTML文档并构建DOM树。DOM(Document Object Model)是一种...

    HtmlParser提取网页信息的设计与实现

    首先,使用HtmlParser解析主页的HTML代码,然后查找所有的`&lt;a&gt;`标签,提取其中的`href`属性值以及相邻的文本节点作为新闻标题。接着,对提取到的链接进行清洗,最后将清洗后的数据存储到SQL数据库中。 ##### 4.1 ...

    delphi7+网页采集之网址提取,内容提取,图片提取,网页源码

    通过识别特定的HTML标签,比如标题(`&lt;h1&gt;`至`&lt;h6&gt;`)、段落(`&lt;p&gt;`)、列表(`&lt;ul&gt;`和`&lt;ol&gt;`)等,我们可以提取出网页的主要内容。 **图片提取**则需要识别HTML中的`&lt;img&gt;`标签,特别是`src`属性,这通常指向图片...

    基于htmlparser的网页爬虫和java调用excel代码

    例如,我们可以设置监听器,当遇到特定的HTML标签(如`&lt;title&gt;`或`&lt;a&gt;`)时,执行相应的处理函数,收集新闻信息。 4. **Java调用Excel API**:为了将爬取的新闻数据写入Excel,项目中可能使用了Apache POI库。这是...

    网络爬虫htmlparser

    然后,使用HTMLParser解析这个内容,查找包含基金数据的表格标签(如`&lt;table&gt;`),进一步找到表头(`&lt;th&gt;`)和数据单元格(`&lt;td&gt;`)。通过分析表格结构,可以提取出每行数据,并将其转换为"FundTableBean"实例。 在...

    获取指定网页上所有链接

    标题“获取指定网页上所有链接”所涉及的知识点主要集中在网页数据抓取和解析领域,这一过程通常称为网络爬虫或网页抓取。下面将详细解释这个过程,并结合描述中的“小东东”(即简单工具)进行阐述。 首先,我们要...

    Winista.Htmlparser.Net 源码 +Demo

    2. **WebParser**:可能是一个简单的网页抓取器,利用HtmlParser解析网页,提取所需信息,例如新闻标题、链接等。 开发者可以打开`AnalyzeHtml.sln`,编译并运行这两个项目,以了解HtmlParser的具体使用方法和实际...

    java使用htmlparser提取网页纯文本例子

    如果你使用Maven,可以在pom.xml文件中添加以下依赖项:\n```xml\n&lt;dependency&gt;\n &lt;groupId&gt;org.htmlparser&lt;/groupId&gt;\n &lt;artifactId&gt;htmlparser&lt;/artifactId&gt;\n &lt;version&gt;3.1&lt;/version&gt;\n&lt;/dependency&gt;\n```\n确保...

    htmlparser电子书

    1. **网页爬虫**:HTMLParser可以用于抓取网页内容,提取关键信息,如链接、标题、文章正文等。 2. **HTML清理**:可以用来标准化或规范化不规则的HTML代码,使其符合标准格式。 3. **数据分析**:在数据挖掘项目中...

    【Java】获取指定HTML 文档指定的body、页中超链接的标题和链接、指定博客文章的内容

    - 从每个Element对象中,我们可以调用`attr("href")`获取链接的URL,调用`text()`获取显示的文本(链接标题)。 4. **获取指定博客文章内容**: - 如果博客文章有特定的标记,如class或id,我们可以利用这些标记...

    htmlparser实现爬虫.doc

    例如,如果你想要提取所有的链接(`&lt;a&gt;`标签),你可以检查`Tag`类型并处理`&lt;a&gt;`标签。 为了实现更复杂的爬虫,你可能需要添加额外的功能,比如错误处理、重试机制、URL队列、多线程下载、以及对CSS选择器的支持,...

    HTMLParser的使用

    而`readTextAndLinkAndTitle`方法则创建了过滤器,只保留了文本节点、链接(`&lt;a&gt;`标签)和标题(`&lt;title&gt;`标签),然后遍历这些节点并打印相关信息。 三、核心概念 1. `Parser`: 是HTMLParser的核心类,负责解析...

    itextsharp.dll 文件

    string html = "&lt;h1&gt;标题&lt;/h1&gt;&lt;p&gt;这是HTML内容&lt;/p&gt;"; // 解析HTML并添加到PDF HTMLWorker htmlWorker = new HTMLWorker(document); htmlWorker.StartDocument(); StringReader sr = new StringReader(html); ...

    htmlparser实现从网页上抓取数据.pdf

    例如,当遇到`&lt;a&gt;`标签时,可以获取链接的URL;当遇到`&lt;img&gt;`标签时,可以获取图片的源地址。 5. **错误处理和容错性**:HTMLParser通常具有一定的容错性,能处理不规范的HTML代码,因为它设计的初衷是处理真实世界...

    基于Htmlparser的天气预报程序

    【标题】"基于Htmlparser的天气预报程序"是一款利用Htmlparser库解析网页HTML内容,获取并展示天气预报信息的应用程序。这个程序的核心是通过解析指定天气网站的HTML页面,提取出温度、湿度、风向等关键天气数据,...

    使用HTMLPARSER和HTTPCLIENT制作网络爬虫,附赠相关技术文档。

    例如,查找所有的`&lt;a&gt;`标签以获取所有链接。 7. **异常处理**: 确保处理可能的网络错误,如连接失败、超时或无效响应。 8. **资源释放**: 请求完成后,记得关闭HttpEntity的输入流,以及HttpClient对象,避免...

Global site tag (gtag.js) - Google Analytics