如何用Java实现提取网页中所有的超链接啊?

时间:2022-08-07 09:42:45
有没有比较简单的方法,我用正则表达式,老是要求我添加类,我初学java,有没有高手可以帮我写一个,演示演示。急。。。

6 个解决方案

#1


getElementByName ??

#2


htmlparse这个插件可以完成你所有想要的功能

估计lz是想做搜索了吧..哈哈

加我邮箱wukai2010@gmail.com我发给你

#3


import java.util.regex.*;

String baseURL = "http://...............";
Pattern pattern = Pattern.compile("href=\"(.*)\"",Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(webpage_content);
while(matcher.find()){
    String foundURL = matcher.group(1);
    if (foundURL.startsWith("http")){
        System.out.println(foundURL);
    }else{
        System.out.println(baseURL + foundURL));
    }
}

#4


引用 3 楼 huntor 的回复:
Java code
import java.util.regex.*;

String baseURL = "http://...............";
Pattern pattern = Pattern.compile("href=\"(.*)\"",Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(webp……


//href=http://video.sina.com.cn/>
 //href=http://tv.sohu.com/hdtv >搜狐视频</a>
//href="http://www.jiayuan.com/st/?id=3237&url=http://www.jiayuan.com" class="f1">
楼上,这种格式,估计就匹配不出来吧。

#5


getElementByTag

好像是这么写,自己查去

#6


用正则表达式可以吧!

#1


getElementByName ??

#2


htmlparse这个插件可以完成你所有想要的功能

估计lz是想做搜索了吧..哈哈

加我邮箱wukai2010@gmail.com我发给你

#3


import java.util.regex.*;

String baseURL = "http://...............";
Pattern pattern = Pattern.compile("href=\"(.*)\"",Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(webpage_content);
while(matcher.find()){
    String foundURL = matcher.group(1);
    if (foundURL.startsWith("http")){
        System.out.println(foundURL);
    }else{
        System.out.println(baseURL + foundURL));
    }
}

#4


引用 3 楼 huntor 的回复:
Java code
import java.util.regex.*;

String baseURL = "http://...............";
Pattern pattern = Pattern.compile("href=\"(.*)\"",Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(webp……


//href=http://video.sina.com.cn/>
 //href=http://tv.sohu.com/hdtv >搜狐视频</a>
//href="http://www.jiayuan.com/st/?id=3237&url=http://www.jiayuan.com" class="f1">
楼上,这种格式,估计就匹配不出来吧。

#5


getElementByTag

好像是这么写,自己查去

#6


用正则表达式可以吧!