从Java中的html页面获取html链接
我正在尝试获取一些html链接(可以包含UTF-8字符,比如俄语aso),并将它们存储在java应用程序中的字符串中。 由于我收到的html页面包含很多错误,我使用了HtmlCleaner,它工作得非常好(顺便说一句) 有了这些干净的html页面,我现在面临一个问题: 我试图用XSL样式表将这些字符串收集到XML文件中,但当我想用dom4j SAXReader读取该文件时失败了,因为仍然存在一些特殊字符(如链接中的参数(&for)) 所以我的问题是:获取这些html链接并将其存储在字符串中而不必对其进行36次解析的最简单方法是什么 HTML页面包含一个表。这是一行:从Java中的html页面获取html链接,java,xml,Java,Xml,我正在尝试获取一些html链接(可以包含UTF-8字符,比如俄语aso),并将它们存储在java应用程序中的字符串中。 由于我收到的html页面包含很多错误,我使用了HtmlCleaner,它工作得非常好(顺便说一句) 有了这些干净的html页面,我现在面临一个问题: 我试图用XSL样式表将这些字符串收集到XML文件中,但当我想用dom4j SAXReader读取该文件时失败了,因为仍然存在一些特殊字符(如链接中的参数(&for)) 所以我的问题是:获取这些html链接并将其存储在字符串中而不必
<tr>
<td>1</td>
<td>name</td>
<td>title</td>
<td>3:48</td>
<td align="center"><a href="http://..." target="_blank" rel="nofollow" ><img src="images/fisher_listen_icon1.gif" width="18" height="18" border=0></a></td>
<td align="center"><a target=_blank rel="nofollow" onclick="loadornot()" href="http://..."><img border=0 width="18" height="18" src="images/d.gif"></a></td>
</tr>
1.
名称
标题
3:48
我想将这一行存储在一个对象中(每个td都是一个属性)
谢谢;) 在使用类似
url的代码解析HTML时,请替换符号。替换(&),“&;”
因为您使用的是html,所以IMO最简单的方法就是使用它
例如:
Document doc = Jsoup.parse(html);
Elements links = doc.select("a[href]");
for (Element link : links) {
System.out.println(link.attr("href"));
}
尝试使用Swing或HTMLPasser,如本例所示: 然后你就可以得到
if (tag == Tag.A) {
String address = (String) attribute.getAttribute(Attribute.HREF);
list.add(address);
}
为什么不直接使用正则表达式并提取href=属性呢?使用正则表达式,您很难跳过注释,以及被特殊标记包围的文本,如
或CDATA
。