簡體   English   中英

HTML解析器獲取鏈接文本

[英]HTML Parser fetch link text

我正在使用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;
}

您是否嘗試過(((LinkTag)tag).getLinkText()? 我個人更喜歡n html解析器,該解析器根據很好的標准(例如xerces或類似標准)生成XML。 這是使用http://nekohtml.sourceforge.net/所獲得的

您需要檢查每個A Tag的子代。 如果您假設A標簽只有一個孩子(文本本身),則可以使用getFirstChild()方法。 應該TextNode的實例,您可以對此調用getText()以獲取鏈接文本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM