黑马程序员技术交流社区

标题: 自己写的简单网络爬虫,有兴趣的可以研究一下 [打印本页]

作者: 韩伟    时间: 2012-8-10 16:48
标题: 自己写的简单网络爬虫,有兴趣的可以研究一下

  1. import java.io.*;
  2. import java.net.*;
  3. import java.util.regex.*;
  4. class UrlDemo
  5. {
  6.         public static void main(String[] args) throws Exception
  7.         {
  8.                 URL url = new URL("http://www.csdn.net");
  9.                 URLConnection conn = url.openConnection();
  10.                 String rex = "[https]{4,5}[:][/]{2}\\w+(\\.\\w+)+(/\\w+)*(\\.\\w+)?(\\?\\w+\\=\\-?\\w+)*(\\&\\w+\\=\\-?\\w+)*";
  11.                 Pattern p = Pattern.compile(rex);
  12.                
  13.                 BufferedWriter bw = new BufferedWriter(new FileWriter("F:\\csdn.txt"));
  14.                 BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
  15.                 String line = null;
  16.                 while((line = br.readLine())!=null)
  17.                 {
  18.                         Matcher m = p.matcher(line);
  19.                         while(m.find())
  20.                         {
  21.                                 bw.write(m.group());
  22.                                 bw.newLine();
  23.                                 bw.flush();
  24.                         }
  25.                 }
  26.                 br.close();
  27.                 bw.close();
  28.         }
  29. }
复制代码

作者: 郑枫    时间: 2012-8-10 17:16
{:soso_e103:} 看不明白干什么使的。
作者: 赵俊杰    时间: 2012-8-10 17:24
抓网址的吧,是http://开头就算符合。?
作者: 韩伟    时间: 2012-8-13 12:31
"[https]{4,5}[:][/]{2}\\w+(\\.\\w+)+(/\\w+)*(\\.\\w+)?(\\?\\w+\\=\\-?\\w+)*(\\&\\w+\\=\\-?\\w+)*";
这个正则表达式是用来筛选网址的,如果看不懂什么意思的话就去看看毕老师第25天的课程吧,讲的很清晰的




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2