JAVA实现数据采集程序的基本原理

项目需要,非要采集别人网站的MP3,没办法只能做。。好在成功了,分享一下心得。。
同样的方法,采集FALSH,文本都可以的。。
首先要采集别人的东西就要登陆别人的网页查看源代码找到下载地址,其实就这么简单。。
那就只要先定义一个方法让程序可以自动侦测到网页的源代码了。。
程序代码:  

程序代码:
public  static  String  getWebContent(String  domain){
         System.out.println("开始读取内容...("+domain+")");
         StringBuffer  sb  =  new  StringBuffer();
          try{    
              java.net.URL  url  =  new  java.net.URL(domain);
              BufferedReader  in  =
              new  BufferedReader(new  InputStreamReader(url.openStream()));
              String  line;
              while((line  =  in.readLine())  !=  null){
                  sb.append(line);
              }
             in.close();
          }catch(Exception  e)  {  //  Report  any  errors  that  arise  
            sb.append(e.toString());
                System.err.println(e);  
               System.err.println("Usage:  java  HttpClient  <URL>  [<filename>]");  
             }    
   return  sb.toString();                  
       }
 



这个方法以网址为参数会返回那个网页的源代码,接着分析对方网页的超链接。。
凡是提供下载的必须提供链接,哈哈,废话。。我们只要根据网页源代码提取到超链接地址
然后村成TXT,直接用FLASHGET下载就行了
那么怎么分析出网页的超链接?    
当然是用正则表达式了于是有了下面这个方法
程序代码:  

程序代码:
    public static String matcherStr(String str, String cp, String s){
        if(str==null || str.equals("")){
            return "";
        }
        String txt = new String();
        txt = str;
        if(str!=null && !str.equals("")){
            txt = str;
            Pattern p = Pattern.compile(cp,2); //参数2表示大小写不区分
            Matcher m = p.matcher(txt);
            StringBuffer sb = new StringBuffer();
            int i=0;
            boolean result = m.find();
            //使用循环将句子里所有匹配的内容找出并替换再将内容加到sb里
            while(result) {
                i++;
                sb.append(m.group());
                sb.append(s);
                //继续查找下一个匹配对象
                result = m.find();
            }
            txt = String.valueOf(sb);
        }else{
            txt = "";
        }
        return txt;       
    }
 



接下来就是分析被采集网站的超接连归责,写出正确的正则表达式用上面的方法匹配出来一次匹配一点,不行就再匹配,直到取出网址,存在StringBuffer里面,等都弄出来了
或者打印另存成txt或者直接用程序存成TXT
只要打开FLASHGET,然后开着TXT    全选,复制,就会自动将地址添加到FLASHGET里面了
批量下吧,兄弟。。。。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值