2016-08-17 3 views
0

나는 webcrawler을 Android에 작성 중입니다. 그것은 regex를 사용하여 웹 문서의 응답 인 문자열에 h1 태그를 찾는AsyncHttpResponseHandler 또는 AsyncHttpClient 클래스를 사용하여 HTML 태그를 찾을 수 있습니까?

public void parseHttp() { 
     AsyncHttpClient client = new AsyncHttpClient(); 
     String url = "http://stackoverflow.com/questions/38959381/unable-to-scrape-data-from-internet-using-android-intents"; 

     client.get(url, new AsyncHttpResponseHandler(Looper.getMainLooper()) { 
      @Override 
      public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) { 
       String body = new String(responseBody); 
       System.out.println(body); 

       Pattern p = Pattern.compile("<h1(.*)<\\/h1>"); 
       Matcher m = p.matcher(body); 
       Log.d("tag", "success"); 
       if (m.find()) { 
        String match = m.group(1); 
        Log.d("tag", match); 
       } 

      } 

      @Override 
      public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) { 

       Log.d("tag", "failure"); 
      } 
     }); 
    } 

내 코드입니다. 나는 tag가 아니라 일반적으로

내가 AsynsHTTPResponceHandler 클래스를 사용하여 Jsoup 같이 태그 찾을 수
try { 
    Document doc; 
    URL = requestString; 
    doc = Jsoup.connect(URL).timeout(20 * 1000).userAgent("Chrome").get(); 
    Elements links = doc.select("h1"); 
    responseMessage = links.text(); 
} catch (IOException e) { 
    responseMessage = e.getMessage(); 
} 

Jsoup 라이브러리를 사용하여 어떻게 찾을 수 있습니까? 4 번째 줄은 Elements links = doc.select("h1"); responseMessage = links.text(); 입니다. 도움이나 방향은 감사하겠습니다.

답변

0

Jsoup는 HTTP (S)를 통해 직접로드하지 않고 문자열에서 문서를 구문 분석 할 수 있습니다.

Document doc = Jsoup.parseBodyFragment(body); 
+0

감사합니다. 그것은 작동합니다. – waqas

관련 문제