2016-08-17 3 views
0

私はwebcrawlerをAndroidに書いています。それはregexを使用してWebドキュメントの応答である文字列内の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が一般的のように

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ライブラリを使用することによって、私はAsynsHTTPResponceHandlerクラスを使用してJsoupのようなタグを見つけることができます見つけることができますか? 4番目の行はElements links = doc.select("h1"); responseMessage = links.text(); です。助けや指示は感謝します。

答えて

0

Jsoupでは、HTTP(S)を介して直接ロードするのではなく、文字列からドキュメントを解析することができます。

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

ありがとう。できます。 – waqas

関連する問題