HTML Parser获取链接文本

时间:2010-09-12 20:08:13

标签: java html parsing hyperlink

我正在使用HTML Parser从网页中获取链接。我需要将URL,链接文本和URL存储到包含该链接的父页面。我设法获得了链接URL以及父URL。

我仍然需要获取链接文字。

<a href="url">link text</a> 

不幸的是,我很难搞清楚,任何帮助都会非常感激。

public static List<LinkContainer> findUrls(String resource) {
    String[] tagNames = {"A", "AREA"};
    List<LinkContainer> urls = new ArrayList<LinkContainer>();
    Tag tag;
    String url;
    String sourceUrl;

    try {

        for (String tagName : tagNames) {

            Parser parser = new Parser(resource);
            NodeList nodes = parser.parse(new TagNameFilter(tagName));

            NodeIterator i = nodes.elements();

            while (i.hasMoreNodes()) {
                tag = (Tag) i.nextNode();
                url = tag.getAttribute("href");
                sourceUrl = tag.getPage().getUrl();

                if (RegexUtil.verifyUrl(url)) {
                    urls.add(new LinkContainer(url, null, sourceUrl));
                }
            }
        }

    } catch (ParserException pe) {
        pe.printStackTrace();
    }

    return urls;
}

2 个答案:

答案 0 :(得分:0)

你试过((LinkTag)标签).getLinkText()?我个人更喜欢n html解析器,它根据一个很好用的标准生成XML,例如xerces或类似的。这是您使用例如http://nekohtml.sourceforge.net/获得的结果。

答案 1 :(得分:0)

您需要检查每个A Tag的孩子。如果您假设您的A标签只有一个孩子(文本本身),则可以使用getFirstChild()方法。此应该TextNode的一个实例,您可以在此处调用getText()来获取链接文本。