bamboo1214 2015-04-23 01:56 采纳率: 0%
浏览 3495

求助jsoup如何翻页取值问题

请问在这个代码上面如何添加取后面几页的功能...这个只能取第一页的...

import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

public class Product {

    public List<Map<String, String>> getProductInfo(String url)
            throws IOException {
        Document doc = Jsoup.connect(url).get();
        Elements ele = doc.select("td[id]");
        // System.out.println(ele.toString());

        List<Map<String, String>> data = new ArrayList<Map<String, String>>();
        for (int i = 1; i < 21; i++) {
            // list添加数据
            data.add(getFoodInfo(i, ele));
        }
        return data;
    }

    private Map<String, String> getFoodInfo(int k, Elements ele) {
        Map<String, String> info = new HashMap<String, String>();
        for (int i = 0; i < 4; i++) {
            // map添加数据
            int j = 0;
            for (Element m : ele) {
                String value = m.attr("id");
                if (value.equals("ctl00_cphMainFrame_td" + k + "SecondType")) {
                    info.put("分类", m.text());
                }

                else if (value.equals("ctl00_cphMainFrame_td" + k + "TypeName")) {
                    info.put("名称", m.text());
                }

                else if (value.equals("ctl00_cphMainFrame_td" + k
                        + "GoodsTypeName")) {
                    // System.out.println(m.text());
                    if (j == 0) {
                        info.put("品牌", m.text());
                    } else if (i == 01) {
                        info.put("单位", m.text());
                    }
                    j++;
                }

                if (value.equals("ctl00_cphMainFrame_td" + k + "AvevageValue")) {
                    info.put("平均价格", m.text());
                }
            }
        }
        return info;
    }

}

测试内容

import java.io.IOException;
import java.util.List;
import java.util.Map;

public class Test {

    public static void main(String[] args) throws IOException {
        String url = "http://www.lnprice.gov.cn/wjjc/jgjc/ReportByDateOfPivot.aspx?PriceBureauMainType_Id=101&YM=201502&DP=28";
        Product pro = new Product();
        List<Map<String, String>> list = pro.getProductInfo(url);
        for (int i = 0; i < list.size(); i++) {
            Map<String, String> map = list.get(i);
            System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
            System.out.println("<<< " + i);
            System.out.println("分类: " + map.get("分类"));
            System.out.println("名称: " + map.get("名称"));
            System.out.println("品牌: " + map.get("品牌"));
            System.out.println("单位: " + map.get("单位"));
            System.out.println("平均价格: " + map.get("平均价格"));
            System.out.println("************************************");
        }
    }
}
  • 写回答

4条回答 默认 最新

  • danielinbiti 2015-04-23 01:59
    关注

    没看出有分页的代码,传递的值也没有每页多少条,第几页的信息。

    评论

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料