You need to enable JavaScript to run this app. Android Studio中使用Java Jsoup爬取网页表格全部行的问题求助
优惠活动
大模型
产品
解决方案
定价
更多

Android Studio中使用Java Jsoup爬取网页表格全部行的问题求助

修复方案

你当前仅能获取奇数行是因为选择器只匹配了griderow1类的行,调整选择器匹配两类数据行、同时修正原有代码的提取逻辑即可拿到全部数据:

  1. 调整tr选择器,匹配所有数据行:使用tr.griderow1, tr.griderow2或者通用匹配tr[class^="griderow"],可以同时命中奇数行和偶数行,自动跳过表头的grideheader行
  2. 修正日期提取逻辑:原代码直接取所有td的文本会把序号、日期、标题拼接在一起,要单独取第二个td的文本作为日期
  3. 修正链接提取逻辑:griderow1是tr的类,不是td的类,直接从当前tr下查找a标签取href属性即可

修正后的doInBackground代码

@Override
protected Void doInBackground(Void... voids) {
    try {
        String url = "https://jntuh.ac.in/bulletins";
        Document doc = Jsoup.connect(url).get();
        Element table = doc.select("table.tableborder").first();
        // 选择所有数据行,同时匹配griderow1和griderow2
        for (Element tr : table.select("tr.griderow1, tr.griderow2")) {
            // 取第二个td的内容作为日期,索引从0开始,第二个对应索引1
            String date = tr.select("td").get(1).text();
            // 直接从当前tr下找a标签取href
            String bulletin = tr.select("a").attr("href");
            jntuhBulletinModels.add(new JNTUHBulletinModel(date, bulletin));
            Log.d("items", "date: " + date + " bulletin: " + bulletin);
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
    return null;
}

内容的提问来源于stack exchange,提问作者Shahzeb Mehdi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.17 23:36:03