千家信息网

Java怎么实现利用搜索引擎收集网址的程序

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要介绍Java怎么实现利用搜索引擎收集网址的程序,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!要利用google、百度搜索引擎的搜索规则中的两条,关键字搜索和inur
千家信息网最后更新 2026年11月01日Java怎么实现利用搜索引擎收集网址的程序

这篇文章主要介绍Java怎么实现利用搜索引擎收集网址的程序,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

要利用google、百度搜索引擎的搜索规则中的两条,关键字搜索和inurl搜索。什么是inurl搜索,就是你所要搜索的网址中本身带有的关键字,比如http://www.xxx.com/post.asp ,这个网址就含有post.asp这样的关键字,在搜索引擎中填写规则是 inurl:post.asp,这是收集网址的关键,因为很多网址本身会带有特定的信息,比如软件发布的网页网址信息中多含有 publish、submit、tuijian这样的信息,如http://www.xxx.com/publish.asp,这样的网址多是发布信息的网页,在结合网页中本身可能含有的关键字,就可以用搜索引擎搜索出结果,然后我们利用程序将结果取回,对HTML页面进行分析,去除没有用的信息,将有用的网址信息写入文件或者数据库,就可以给其它应用程序或者人来使用了。

  第一步,用程序将搜索结果取回,先以百度为例,比如我们要搜索软件发布的网页,关键字采用 "软件发布 版本 inurl:publish.asp",先登录百度看看,将关键字写入,然后提交,在地址栏就会看到 http://www.baidu.com/s?ie=gb2312&bs=%C8%ED%BC%FE%B7%A2%B2%BC+%C8%ED%BC%FE%B0%E6%B1%BE+inurl%3Apublish.asp&sr=&z=&cl=3&f=8&wd=%C8%ED%BC%FE%B7%A2%B2%BC+%B0%E6%B1%BE+inurl%3Apublish.asp&ct=0 ,中文关键字全都变成编码了,没有关系,我们在程序中直接用中文也是可以的,其中多个关键字用+号相连,去掉一些没有用的信息,我们可以把地址优化成 http://www.baidu.com/s?lm=0&si=&rn=20&ie=gb2312&ct=0& wd=软件发布+版本+inurl%3Apublish%2Easp&pn=0&cl=0,其中rn表示一页显示多少个结果,wd=表示你要搜索的关键字,pn表示从第几条开始显示,这个pn将是我们程序循环取结果的变量,每20条循环一次。我们用Java写的程序来模拟这个搜索的过程,用到的关键类为 java.net.HttpURLConnection,java.net.URL,先写一个提交搜索的class,关键代码如下:

  class Search
  {
  public URL url;
  public HttpURLConnection http;
  public java.io.InputStream urlstream;
  ......
  for(int i=0;i++;i<100)
  {
  ......
  try {
   url = new URL("www.baidu.com/s?lm=0&si=&rn=20&ie=gb2312&ct=0& wd=软件发布+版本+inurl%3Apublish%2Easp&pn="+beginrecord+"&cl=0");
  }catch(Exception ef){};
  try {
   http = (HttpURLConnection) url.openConnection();
   http.connect();
   urlstream = http.getInputStream();
  }catch(Exception ef){};
  java.io.BufferedReader l_reader = new java.io.
  BufferedReader(new java.io.InputStreamReader(urlstream));
  try {
   while ((currentLine = l_reader.readLine()) != null) {
    totalstring += currentLine;
   }
  } catch (IOException ex3) {}
  ....
  //本次搜索的结果已经放到totalstring中了,是一些HTML代码,需要下一步进行分析了。
  }
  再以google为例,稍微有些不同,google对浏览器进行了一些检测,编码也不同,URL为http: //www.google.com/search?q=软件发布+版本+inurl:publish.asp&hl=zh-CN&lr= &newwindow=1&start=0&sa=N&ie=UTF-8,其中编码要用ie=UTF-8,start表示从第几条记录显示,需要注意的是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){};

  第二步,对取回的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多条,所以我们要搜索时尽可能多加关键字,将结果范围缩小。

以上是"Java怎么实现利用搜索引擎收集网址的程序"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

搜索 关键 网址 信息 关键字 程序 结果 引擎 搜索引擎 网页 代码 软件 软件发布 有用 浏览器 分析 浏览 字符 字符串 版本 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 手磨咖啡 互联网科技企业 哈尔滨大商圈互联网科技有限公司 江苏根荣互联网科技 中国互联网科技工作委员会毛军 互联网医疗科技 互联网科技公司电话 卓越科技(互联网 ) 成都互联网科技公司 奇士达互联网科技 中国互联网金融科技基金 深圳前海聚择互联网科技有限公司 创业天下互联网科技有限公司 南平创想时代互联网科技有限公司 武汉健翔互联网络科技有限公司 燊美集互联网科技有限公司 工业互联网等科技实现智能化赋能 兰石爱特工业互联网科技分公司 保山浩联互联网科技有限公司 科技美学互联网 艺术 西安纸贵互联网科技有限公司 科技和互联网公司 广州紫鲸互联网科技 无锡溥仪互联网科技有限公司 互联网和高科技公司 玉溪互联网科技怎么选 允成互联网科技有限公司融资 中和天地互联网科技有限公司 西安有哪些互联网高科技企业 小牛互联网科技有限公司地址
0