[英]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.