【问题标题】:correcting parsed URLs in java在java中更正解析的URL
【发布时间】:2012-07-29 11:59:08
【问题描述】:

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

String 中的 URL 格式为:

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

我需要将它们做成以下形式:

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

【问题讨论】:

  • 字符串中的 URL 格式为“”,我需要将其设为 "
  • 你用什么Java代码在网站上阅读?
  • URL page = new URL("stackoverflow.com"); URLConnection connection = page.openConnection(); 然后我尝试用 subString.replaceAll("

标签: java url html-parsing


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-23
      • 2012-11-21
      • 2013-07-24
      相关资源
      最近更新 更多