在java中从网页检索URL

时间:2011-09-13 06:46:06

标签: java http web

我有最基本的java代码来做一个http请求,它工作正常。我请求数据和大量的HTML回来。我想从该页面检索所有网址并列出它们。对于简单的第一次测试,我看起来像这样:

int b = line.indexOf("http://",lastE);
int e = line.indexOf("\"", b);

这样可行,但你可以想象它很可怕,只有80%的情况下才有效。唯一可以选择我自己的选择听起来很慢而且很愚蠢。所以我的问题很简单,我是从

开始的
String html

List<Url> 

3 个答案:

答案 0 :(得分:1)

我会尝试像HTML Parser这样的库来解析html字符串并从中提取所有url标记。

答案 1 :(得分:1)

Pattern p = Pattern.compile("http://[\w^\"]++");
Matcher m = p.matcher(yourFetchedHtmlString);
while (m.find()) {
   nextUrl=m.group();//Do whatever you want with it
}

您可能还需要调整正则表达式,因为我刚刚编写它而未经过测试。这应该是一种非常快速的获取网址的方法。

答案 2 :(得分:0)

你的想法很好,你只是遗漏了一些部分。

Yous应该为网址添加一些已知的扩展名。 例如.html .aspx .php .htm .cgi .js .pl .asp

如果您也喜欢图片,请添加.gif .jpg .png

我认为你做得最好只需要添加更多扩展程序检查。

如果您可以发布完整的方法代码,我将很乐意帮助您改进它。