Java实现利用搜索引擎收集网址的程序 - 编程入门网
第几条记录显示,需要注意的是google对浏览器还要检查,如果浏览器不符合它的要求,将返回错误代码,所以在模拟浏览器提交中,我们要多加一行代码,修改关键部分要将http属性中的User-Agent设置为常用的浏览器,比如Mozilla/4.0,代码如下:
try {http = (HttpURLConnection) url.openConnection();http.setRequestProperty("User-Agent", "Mozilla/4.0");http.connect();urlstream = http.getInputStream();}catch(Exception ef){}; Java实现利用搜索引擎收集网址的程序(2)时间:2010-05-13 天极第二步,对取回的HTML编码进行分析,取出其中的有用网址信息,并写入文件或者数据库,由于这些搜索引擎都有网页快照和相似网页等网址信息混杂在HTML中,我们要将这些网址信息剔除掉,剔除的关键就是找出其中的规律,百度搜索引擎中的网页快照和其它没有用的的地址都含有baidu这个关键字,而google中含有的无用网址信息含有关键字 google和cache,我们就根据这些关键字剔除无用网址信息。在Java中要对字符串进行分析必然要用到 java.util.StringTokenize这个类,用来将字符串以特定的分隔符分开,java.util.regex.Pattern和 java.util.regex.Matcher用来匹配字符串,关键代码如下: class CompareStr{public boolean comparestring(String oristring,String tostring){Pattern p=null; //正则表达式Matcher m=null; //操作的字符串boolean b;p = Pattern.compile(oristring,Pattern.CASE_INSENSITIVE);m = p.matcher(tostring);b = m.find();return b;}}class AnalyUrl{......StringTokenizer token = new StringTokenizer(totalstring,"<> \"");String firstword;CompareStrcompstr = new CompareStr();String dsturl = null;while (token.hasMoreTokens()){firstword = token.nextToken();if (!compstr.comparestring("google.com", firstword) && !compstr.comparestring("cache",firstword)){if (firstword.length() > 7){dsturl = firstword.substring(6,firstword.length() - 1);WriteUrl(dsturl); //成功取到URL,记录到文件中}}}} 通过以上程序,我们就可以收集到自己要的网址信息了,还可以再写另外一个应用程序,对收集到的网址信息进一步分析,取出自己需要的信息,这里就不再累赘,道理都是一样的。最后需说明一点,google搜索引擎搜索所能返回的结果不能超过1000条,过了1000条,就直接提示“对不起, Google 为所有查询的结果数都不会超过 1000 个。”,百度搜索引擎返回的结果不能超过700多条,所以我们要搜索时尽可能多加关键字,将结果范围缩小。 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |