从java中的网页检索URL
我有最基本的java代码来做一个http请求,它工作正常。我要求数据和大量的html回来。我想从该页面检索所有网址并列出它们。举个简单的第一次测试我使它看起来像这样:从java中的网页检索URL
int b = line.indexOf("http://",lastE);
int e = line.indexOf("\"", b);
这工作,但你可以想像这是可怕的,只有在80%的病例的作品。唯一的选择我可以想出自己听起来缓慢和愚蠢。所以我的问题是相当mutch我该从
String html
去
List<Url>
?
Pattern p = Pattern.compile("http://[\w^\"]++");
Matcher m = p.matcher(yourFetchedHtmlString);
while (m.find()) {
nextUrl=m.group();//Do whatever you want with it
}
你也可能需要调整的正则表达式,正如我刚才写它未经测试。这应该是一个非常快速的方式来获取网址。
这给了我无效的转义序列例外 – TFennis
你的想法很好,你只是缺少一些零件。
Yous应该为url添加一些已知的扩展名。 像.html
.aspx
.php
.htm
.cgi
.js
.pl
.asp
,如果你喜欢的图像太再加入.gif
.jpg
.png
我认为你做的最好的只需要添加更多的扩展检查。
如果您可以发布完整的方法代码,我将很乐意帮助您使其更好。
问题是,很多链接不结束如index.php的扩展?page = here – TFennis
同一问题在这里:http://stackoverflow.com/questions/2717760/finding-links-on-a-webpage-with-java – palacsint