一道面试题

liuzhe_2008 2010-10-07 03:33:09
给定一个URL 下载这个页面和这个页面中的所有连接 怎么做 ?
...全文
203 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
aijezdm915 2010-10-09
  • 打赏
  • 举报
回复
<[aA][^>]*[hH][rR][eE][fF][^>]*>
???
chenbb110 2010-10-09
  • 打赏
  • 举报
回复
很强大
有一天呵呵 2010-10-07
  • 打赏
  • 举报
回复
呵呵,不错
rjzou2006 2010-10-07
  • 打赏
  • 举报
回复
voice1122 2010-10-07
  • 打赏
  • 举报
回复
学习了
龙四 2010-10-07
  • 打赏
  • 举报
回复
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class ObtainLinks {
private String pageSrc;
private String url;

public ObtainLinks(String url) throws MalformedURLException,IOException{
this.url = url;
pageSrc = getPageSrc(url);
}

/**
* 根据strUrl获取网页源文件.
* @param strURL
* @return 源文件为空,返回空串
* @throws MalformedURLException
* @throws IOException
*/
private String getPageSrc(String strUrl) throws MalformedURLException,IOException {
StringBuffer sb = new StringBuffer();
java.net.URL url = new java.net.URL(strUrl);
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
String line;
while ((line = in.readLine()) != null) {
sb.append(line);
}
in.close();
return sb.toString();
}

/**
* 获取网页中所有包含href属性的<a>标签.
* @return pageSrc(网页源码)为空,返回null
*/
private List<String> getAnchorContent(){
if(pageSrc == null) {
return null;
}
List<String> list = new ArrayList<String>();
String regex = "<[a|A][^>]*[h|H][r|R][e|E][f|F][^>]*>";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(pageSrc);
while(matcher.find()){
list.add(matcher.group());
}
return list;
}


public List<String> getUrls() {
List<String> anchorList = getAnchorContent();
if(anchorList == null){
return null;
}

List<String> list = new ArrayList<String>();
Pattern pattern;
for(String anchor:anchorList) {

//<a href="www.baidu.com">
if(anchor.matches(".*[h|H][r|R][e|E][f|F]\\s*=\\s*\"[^\"]*\".*")) {
pattern = Pattern.compile("[h|H][r|R][e|E][f|F]\\s*=\\s*\"[^\"]+\"");
Matcher matcher = pattern.matcher(anchor);
while(matcher.find()){
list.add(matcher.group());
}
continue;
}

//<a href='www.baidu.com'>
if(anchor.matches(".*[h|H][r|R][e|E][f|F]\\s*=\\s*\'[^\']*\'.*")) {
pattern = Pattern.compile("[h|H][r|R][e|E][f|F]\\s*=\\s*\'[^\"]+\'");
Matcher matcher = pattern.matcher(anchor);
while(matcher.find()){
list.add(matcher.group());
}
continue;
}

//<a href=www.baidu.com>
if(anchor.matches(".*[h|H][r|R][e|E][f|F]\\s*=\\s*[^\\s]*.*")) {
pattern = Pattern.compile("[h|H][r|R][e|E][f|F]\\s*=\\s*[^\\s]+[\\s+|>]");
Matcher matcher = pattern.matcher(anchor);
while(matcher.find()){
String str = matcher.group();
list.add(str.substring(0, str.length()-1));
}
continue;
}
}


return list;
}
public static void main(String[] args) throws Exception{
List<String> list = new ObtainLinks("http://sports.sina.com.cn/nba/").getUrls();
for(String str:list){
System.out.println(str);
}
}
}
thegodofwar 2010-10-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ticmy 的回复:]
Java code
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.util.ArrayList;
import java.util.List;
……
[/Quote]
类似这种
<[a|A][^>]*[h|H][r|R][e|E][f|F][^>]*>
的正则表达式写的都不对,比如这个它还能匹配
String str="<| agghd||||ggdhhdj>";
这样的字符串,‘或’应该是这样写
<[aA][^>]*[hH][rR][eE][fF][^>]*>
shauxiaoxin 2010-10-07
  • 打赏
  • 举报
回复
不错!不错!
feifei694893239 2010-10-07
  • 打赏
  • 举报
回复
这个必须要收藏啊
popoweiqi 2010-10-07
  • 打赏
  • 举报
回复
mark,学习了。不介意我把代码带走了吧,哈哈。
DBMS_TTT 2010-10-07
  • 打赏
  • 举报
回复
学习学习
fczfr 2010-10-07
  • 打赏
  • 举报
回复
不错,很犀利
i11111 2010-10-07
  • 打赏
  • 举报
回复
噢,不错,学习了,我想到是用一般下载软件,呵呵
昨日,11.19,最新整理了,第61-80,现在公布上传。 另加上之前公布的第1-60 ,在此做一次汇总上传,以飨各位。 可以这么说,绝大部分的面试,都是这100 道系列的翻版, 此微软等公司数据结构+算法面试100 系列,是极具代表性的经典面试。 而,对你更重要的是,我自个还提供了答案下载,提供思路,呵。 所以,这份资料+答案,在网上是独一无二的。 ------------------------------------ 整理资源,下载地址: 答案系列: 1.[最新答案V0.3 版]微软等数据结构+算法面试100 [第21-40 答案] http://download.csdn.net/source/2832862 2.[答案V0.2 版]精选微软数据结构+算法面试100 [前20 ]--修正 http://download.csdn.net/source/2813890 //此份答案是针对最初的V0.1 版本,进行的校正与修正。 3.[答案V0.1 版]精选微软数据结构+算法面试100 [前25 ] http://download.csdn.net/source/2796735 目系列: 4.[第一部分]精选微软等公司数据结构+算法经典面试100 [1-40 ] http://download.csdn.net/source/2778852 5.[第1 -60 汇总]微软等数据结构+算法面试100 http://download.csdn.net/source/2826690 更多资源,下载地址: http://v_july_v.download.csdn.net/ 若你对以上任何目或任何答案,有任何问,欢迎联系我: My E-mail: zhoulei0907@yahoo.cn ------------- 作者声明: 本人July 对以上公布的所有任何目或资源享有版权。转载以上公布的任何一, 或上传百度文库资源,请注明出处,及作者我本人。 向你的厚道致敬。谢谢。 ---July、2010 年11 月20 日。 ------------------------------------------------------ 各位,若对以上100任何一道,或对已上传的任何一的答案, 有任何问,请把你的思路、想法,回复到此帖子上, 微软等100系列,永久维护地址(2010年11.26日): http://topic.csdn.net/u/20101126/10/b4f12a00-6280-492f-b785-cb6835a63dc9.html
此为我个人搜集整理的, 精选微软等公司,有关 数据结构和算法的面试100[前40], 此绝对值得你下载收藏。 网友yui评论,真是够多的了,从此,不用再看其它面试.... 一句话,请享用。 其它资源,下载地址: 1.[最新答案V0.3版]微软等数据结构+算法面试100[第21-40答案] http://download.csdn.net/source/2832862 2.[第1-60汇总]微软等数据结构+算法面试100 http://download.csdn.net/source/2826690 3.[答案V0.2版]精选微软数据结构+算法面试100[前20]--修正 http://download.csdn.net/source/2813890 //此份答案是针对最初的V0.1版本,进行的校正与修正。 4.[答案V0.1版]精选微软数据结构+算法面试100[前25] http://download.csdn.net/source/2796735 5.[第二部分]精选微软等公司结构+算法面试100[前41-60]: http://download.csdn.net/source/2811703 6.[第一部分]精选微软等公司数据结构+算法经典面试100[1-40] http://download.csdn.net/source/2778852 更多资源,下载地址: http://v_july_v.download.csdn.net/ //请继续期待,后续内容。 ------------------------------------------------------ 各位,若对以上100任何一道,或对已上传的任何一的答案, 有任何问,请把你的思路、想法,回复到此帖子上, 微软等100系列,永久维护地址(2010年11.26日): http://topic.csdn.net/u/20101126/10/b4f12a00-6280-492f-b785-cb6835a63dc9.html -------July、2010年12月2日。
精选微软等数据结构+算法面试100答案修正V0.2版本 -------------------- 此份答案是针对,前期已公布的最初的那份答案的,初步校正与修正。 http://download.csdn.net/source/2796735(V0.1版) 相比第一份V0.1版答案,此份答案V0.2版更加准确,亦修正了不少目的答案。 此份20的答案,思路更加清晰易懂,简介明了。 请享用。July、2010/11/06。 其它资源,下载地址: 1.[最新答案V0.3版]微软等数据结构+算法面试100[第21-40答案] http://download.csdn.net/source/2832862 2.[第1-60汇总]微软等数据结构+算法面试100 http://download.csdn.net/source/2826690 3.[答案V0.2版]精选微软数据结构+算法面试100[前20]--修正 http://download.csdn.net/source/2813890 //此份答案是针对最初的V0.1版本,进行的校正与修正。 4.[答案V0.1版]精选微软数据结构+算法面试100[前25] http://download.csdn.net/source/2796735 5.[第二部分]精选微软等公司结构+算法面试100[前41-60]: http://download.csdn.net/source/2811703 6.[第一部分]精选微软等公司数据结构+算法经典面试100[1-40] http://download.csdn.net/source/2778852 更多资源,下载地址: http://v_july_v.download.csdn.net/ ------------------------------------------------------ 各位,若对以上100任何一道,或对已上传的任何一的答案, 有任何问,请把你的思路、想法,回复到此帖子上, 微软等100系列,永久维护地址(2010年11.26日): http://topic.csdn.net/u/20101126/10/b4f12a00-6280-492f-b785-cb6835a63dc9.html
火爆出炉:微软等数据结构+算法面试100首次完整亮相 ---100V0.1版最终完成 作者:July 2010年12月6日 微软等100系列V0.1版终于结束了。 从2010年10月11日当天最初发表前40以来,直至此刻,整理这100,已有近2个月。 2个月,因为要整理这100,很多很多其它的事都被我强迫性的搁置一旁, 如今,要好好专心去做因这100而被耽误的、其它的事了。 这微软等数据结构+算法面试100系列(目+答案),到底现在、或此刻、或未来, 对初学者有多大的意义,在此,我就不给予评说了。 由他们自己来认定。所谓,公道自在人心,我相信这句话。 任何人,对以下任何资料、目、或答案,有任何问,欢迎联系我。 作者邮箱: zhoulei0907@yahoo.cn 作者声明: 转载或引用以下任何资料、或目,请注明作者本人July及出处。 向您的厚道致敬,谢谢。 好了,请享受这完完整整的100吧,这可是首次完整亮相哦。:D。 ............ ............ 答案系列: 5.[最新答案V0.3版]微软等数据结构+算法面试100[第21-40答案] http://download.csdn.net/source/2832862 6.[答案V0.2版]精选微软数据结构+算法面试100[前20]--修正 http://download.csdn.net/source/2813890 //此份答案是针对最初的V0.1版本,进行的校正与修正。 7.[答案V0.1版]精选微软数据结构+算法面试100[前25] http://download.csdn.net/source/2796735 剩下的第41-100答案,正在整理中。预计明年整理公布。 请各位,细心的等待。谢谢。 更多资源,下载地址: http://v_july_v.download.csdn.net/ ================================== 更多详情,请参见本人博客: My Blog: http://blog.csdn.net/v_JULY_v --------------------------------------------------------------------------------------- 各位,若对以上100任何一道,或对已上传的任何一的答案, 有任何问,请把你的思路、想法,回复到此帖子上, 微软等100系列,永久维护地址(2010年11.26日): http://topic.csdn.net/u/20101126/10/b4f12a00-6280-492f-b785-cb6835a63dc9.html

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧