2012-04-07 5 views
0

프록시 스크레이퍼에 대한 도움이 필요합니다. 내 응용 프로그램이 겉으로보기에 아무 이유없이 예외를 던지고 있습니다.정규식 패턴에 문제가 있습니다.

내 코드 같은 것 같습니다

package com.ElwynDev.PastBinBot; 

import java.io.IOException; 
import java.util.HashSet; 
import java.util.regex.Matcher; 
import java.util.regex.Pattern; 

public class ProxyScraper { 

    public static void ScrapProxy(int Pages) { 

     final int[] searchIds = new int[] { 225957, 278235, 240804, 258000, 227364, 244555, 438084, 438085, 438086, 438087, 438088}; 
     final String searchUrl = "http://www.proxyfire.net/forum/showthread.php?t=56861?"; 
     final String proxyExtractingRegex = "[1-9]{2,3}.[1-9]{2,3}.[1-9]{2,3}.[1-9]{2,3}"; 

     Pattern r = Pattern.compile(proxyExtractingRegex); 

     HashSet<String> proxyHashSet = new HashSet<String>(); 
     for(int searchId : searchIds) { 
      Matcher m = null; 

      try { 
       m = r.matcher(ProxyHandle.get(searchUrl + searchId, null, Pages)); 
       while(true) { 
        if(m.find()){ 
         proxyHashSet.add(m.group()); 
        } 
        else 
         break; 
       } 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
     } 
     for(String proxy : proxyHashSet) { 
      FileWrighter.logTo("proxy.txt", proxy + "\n"); 
     } 
    } 
}; 
Exception in thread "main" java.lang.NullPointerException 
at java.util.regex.Matcher.getTextLength(Unknown Source) 
at java.util.regex.Matcher.reset(Unknown Source) 
at java.util.regex.Matcher.<init>(Unknown Source) 
at java.util.regex.Pattern.matcher(Unknown Source) 
at com.ElwynDev.PastBinBot.ProxyScraper.ScrapProxy(ProxyScraper.java:24) 
at com.ElwynDev.PastBinBot.Main.main(Main.java:17) 
+0

응용 프로그램이 예외를 throw하는 매우 좋은 이유가 있습니다. 예외 타입, 예외가 던져지는 코드의 라인 등과 같은 자세한 정보를 제공해주세요. – darrengorman

+2

'ProxyHandle.get'은 무엇을 반환합니까? –

+0

ProxyHandle.get이 null을 반환하는지 확인해야합니다. – dexametason

답변

1

:

ProxyHandle.get(searchUrl + searchId, null, Pages) 

null을 반환합니다. 왜 그런지 말할 수 없었습니다. 디버거를 사용하여이를 파악하는 것이 좋습니다.

관련 문제