有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Android的java Jsoup帮助如何从表中获取元素中的文本?

http://msu.esuds.net/RoomStatus/showRoomStatus.i?locationId=1016364

当我检查元素时,链接中的表提供了表名为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();

}

我看到的唯一日志猫是Log.d("getWebsite", "runs)Log.d("run", "runs")


共 (1) 个答案

  1. # 1 楼答案

    打开浏览器的开发者工具,你会看到在加载站点时,在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();