用Java+MySQL+PHP轻松构建跨平台的搜索引擎 - 编程入门网
作者 佚名技术
来源 NET编程
浏览
发布时间 2012-06-23
/"); if(v!=-1) UrlPath = UrlFile.substring(0,v); System.out.println("分析文件:"+myurl); int uclength=200000; int ucError=0; try{ uc = url.openConnection(); uc.setUseCaches(false); uc.connect(); } catch(IOException io) { ucError=1; System.out.println("打不开待分析网页:"+myu rl); } if(ucError!=1){ uclength = uc.getContentLength(); if (uclength<200000) { try{ read = new InputStreamReader(url.openStream()); } catch(IOException io) {System.out.println("流打开错误:"+myurl);} } else System.out.println("文件太大,不分析"); } if(read!=null){ reader=new BufferedReader(read); if(reader!=null){ st = new StreamTokenizer(reader); st.resetSyntax(); // 重置语法表 st.WordChars(0,255); // 令牌范围为全部字符 st.ordinaryChar(''<''); // HTML标记两边的分割符 st.ordinaryChar(''>''); } } } catch(MalformedURLException e){ System.out.println("Malformed URL String!");} } void cleanup() { try { read.close(); } catch(IOException e) { System.out.println("流关闭错误"); } } void countWords() { try { while(st.nextToken()!=StreamTokenizer.TT_EOF) { String s0=""; String s_NoCase=""; switch(st.ttype) { case ''<'': //入标记字段 outsideTag=false; continue; //countWords(); case ''>'': //出标记字段 outsideTag=true; continue; //countWords(); case StreamTokenizer.TT_EOL: s0 = new String("EOL"); break; case StreamTokenizer.TT_WORD: if(!outsideTag) s0 = st.sval; /*已经是字符 串*/ break; default: s0 = "";// s0 = String.valueOf((char)st.ttype);/*单一字符*/ } if(outsideTag) continue;//出了标记区域(<a >) String s = ""; s_NoCase = s0.trim(); s0=s_NoCase.toUpperCase(); if(s0.startsWith("A ")s0.startsWith("AREA ")s0.startsWith("FRAME ")s0.s tartsWith("IFRAME ")){ //以这些开始的都是超级链接 int HREF_POS = -1; if(s0.startsWith("FRAME ")s0.startsWith("IFRAME ")) { HREF_POS = s0.indexOf("SRC="); s0 = s0.substring(HREF_POS+4).trim(); s_NoCase=s_NoCase.substring(HREF_POS+4).trim(); } else { HREF_POS=s0.indexOf("HREF="); s0=s0.substring(HREF_POS+5).trim(); s_NoCase=s_NoCase.substring(HREF_POS+5).trim(); } if(HREF_POS!=-1) { if(s0.startsWith("\"")) {s0=s0.substring(1);s_NoCase=s_NoCase.substring(1);} int QUOTE=s0.indexOf("\""); if(QUOTE!=-1) {s0=s0.substring(0,QUOTE).trim();s_NoCase=s_NoCase.substring(0,QUOTE).trim ();} int SPACE=s0.indexOf(" "); if(SPACE!=-1) {s0=s0.substring(0,SPACE).trim();s_NoCase=s_NoCase.substring(0,SPACE).trim ();} if(s0.endsWith("\"")) {s0=s0.substring(0,s0.length()-1);s_NoCase=s_NoCase.substring(0,s_NoCase.l ength()-1);} if(s0.indexOf("''")!=-1s0.indexOf("javascript:")!=-1s0.indexOf("..")!=-1 ) {s0="";s_NoCase="";} //有这些符号,认为非合法链接;两点表示上一目录,而我 只想向下级查找 if ( !s0.startsWith("FTP://") &&//以下后缀或前缀通常非网页格式 !s0.startsWith( |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: 品味Java子类型多态的魅力 - 编程入门网下一篇: Java中的模式 - 编程入门网
关于用Java+MySQL+PHP轻松构建跨平台的搜索引擎 - 编程入门网的所有评论