2017-11-03 20 views
0

http://msu.esuds.net/RoomStatus/showRoomStatus.i?locationId=1016364Android用Jsupヘルプ - テーブルの要素のテキストを取得するにはどうすればよいですか?

リンクの要素を調べると、表の名前はtable.room_statusになります。

しかし、私は、洗濯機/乾燥機が持つ利用可能かどう伝えてみてください:

private void getWebsite(){ 
    Log.d("getWebsite","runs"); 
    new Thread(new Runnable() { 
     @Override 
     public void run() { 
      Log.d("run","runs"); 
      final TextView textView = (TextView)findViewById(R.id.parseTest); 
      final StringBuilder builder = new StringBuilder(); 
      try { 
       Document doc = Jsoup.connect("http://msu.esuds.net/RoomStatus/showRoomStatus.i?locationId=1028671").get(); 
       for (Element table : doc.select("table.room_status")) { 
        Log.d("table","runs"); 
        for (Element row : table.select("tr")) { 
         Log.d("row","runs"); 
         Elements tds = row.select("td"); 
         if (tds.size() == 6) { 
          Elements font = tds.get(4).getElementsByTag("font"); 
          builder.append(font.first().text()); 
          Log.d("font","runs"); 
         } 
        } 
       } 
      } catch (IOException e){ 
       builder.append("Error: ").append(e.getMessage()).append("\n"); 
      } 

      runOnUiThread(new Runnable() { 
       @Override 
       public void run() { 
        textView.setText(builder.toString()); 
       } 
      }); 
     } 
    }).start(); 

} 

私は見るだけlogcatsがLog.d("getWebsite", "runs)Log.d("run", "runs")です。

答えて

2

ブラウザのデベロッパーツールを開くと、サイトを読み込むときにGETリクエストの後にPOSTリクエストがあり、そのテーブルを取得することがわかります。そのページを取得するリクエストを変更します。リクエストにユーザーエージェント文字列を追加すると便利です。

Document doc = Jsoup.connect("http://msu.esuds.net/RoomStatus/machineStatus.i?bottomLocationId=1016486") 
      .userAgent("Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:56.0) Gecko/20100101 Firefox/56.0") 
      .post(); 
関連する問題