更正java中的已解析URL

时间:2012-07-31 16:31:31

标签: java url html-parsing

我正在创建一个HTML解析器,它从给定的URL获取HTML,找到导航菜单html,并将其放入String中。 HTML中要复制到String中的URL需要添加URL的一部分(“www.stackoverflow.com”部分)。如何查找字符串中的现有URL并将缺少的部分添加到其中以便它们起作用。

String中的网址格式为:

<a href="/qestions/11744851.cfm">

我需要以下面的形式制作它们:

<a href="www.stackoverflow.com/questions/11744851.cfm">

2 个答案:

答案 0 :(得分:1)

如果XHTML是有效的XML,最简单的方法是将其解析为XML并使用XPath(例如/ body / div / a @ href,其中/ body / div是HTML中菜单部分的路径。 还有一个名为HTMLParser(http://htmlparser.sourceforge.net/)的项目,你可能想尝试一下(根据页面,它有'链接提取,用于浏览网页或收集电子邮件地址' ;但我从未使用它,所以我无能为力。 另一方面,如果HTML不是有效的,您可能想要使用http://ccil.org/~cowan/XML/tagsoup/ - 它可能有用,或者可能不会,在我们尝试的网站上,它做得非常好。

编辑:在找到有趣的部分之后,可以使用简单的连接来添加缺失的部分

答案 1 :(得分:1)

尝试将此正则表达式与ReplaceAll()方法一起使用:

str = subString.replaceAll("<a href=\"(.*)\">", "<a href=\"http://www.stackoverflow/$1\">");