HTML解析器获取链接文本
问题描述:
我正在使用HTML Parser从网页获取链接。我需要将URL,链接文本和URL存储到包含链接的父页面。我设法获取链接网址以及父网址。HTML解析器获取链接文本
我仍然需要获取链接文本。
<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;
}
答
您是否尝试过((链接标记)标记).getLinkText()?就个人而言,我更喜欢n根据使用的标准(例如,xerces或类似的标准)生成XML的html解析器。这是您从使用中得到的结果,例如http://nekohtml.sourceforge.net/。
答
您需要检查每个A Tag
的孩子。如果你认为你的A标签只有一个孩子(文本本身),你可以使用getFirstChild()方法。这应该是TextNode的一个实例,并且您可以调用getText()来获取链接文本。
如果'.getAttribute()'工作,我认为'.innerHTML'或'.innerText'会工作...或'.nodeValue'? – scunliffe 2010-09-12 20:16:40