比如通过一个地址得到一个网页,然后得到网页中所有的链接地址,不知道程序该如何实现,有哪几种方式,最好是java程序实现,谢谢
解决方案 »
- 菜鸟,一头雾水中,几个问题希望高手们帮忙指点下!
- tagsupport是否会做session清空的操作doEndTag()为什么时获取不session的内容
- jxl下载excel问题,页面点击按钮后,怎么才能弹出保存打开excel文件窗口供用户下载?
- 请教JSP如何运行客户端应用程序?
- TOM5.5+JDK1.5+APACHE2.054 该怎么配置..请前辈们帮忙..
- JSP三层B/S的开发中,session都在哪里有应用?
- 急,关于提交页面时的刷新
- 请问一个smartupload组件使用的问题.大家帮我看看,谢谢!
- 大家来探讨一下对象共享的问题!
- 别人都说把javabean的class放在..\WEB-INF\CLASSES下我怎么不行呀,还是找不到class
- 查错,checkbox验证是否为空
- 帮帮忙啊!!!
获得网页的内容可以使用URLConnection。另外为了规范化读取回来的HTML页面内容,可以使用JTidy来整理HTML页面。
import org.htmlparser.filters.*;
import org.htmlparser.tags.LinkTag;
import org.htmlparser.util.*;
public class TestParser {
public void getAllUrls(String url) {
NodeList nodeList = null;
try {
Parser p = new Parser(url);
p.setEncoding("gb2312");
//nodeList = p.parse(new TagNameFilter("A")); // 使用TagNameFilter
nodeList = p.parse(new NodeClassFilter(LinkTag.class)); // 使用NodeClassFilter
} catch (ParserException e) {
e.printStackTrace();
}
if(nodeList != null && nodeList.size() > 0) {
for(int i = 0; i < nodeList.size(); i++) {
System.out.println(((LinkTag)nodeList.elementAt(i)).getLink()+"\n"+((LinkTag)nodeList.elementAt(i)).getLinkText());
}
}
} /**
* at param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
TestParser website= new TestParser();
website.getAllUrls("http://www.fsonline.com.cn");
}
}
Pattern p2 = Pattern.compile("<[aA] href=[\"']?([^\"'>]*)[\"']?>");
String str = "<a href=\"123.com\">";
Matcher m = p2.matcher(str);
while (m.find()){
System.out.println(m.group(1));
}