java-求助jsoup如何翻页取值问题

问题描述

求助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(""************************************"");        }    }}

解决方案

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

解决方案二:
所以想求如何添加取全部的分页内容代码怎么写...

解决方案三:
处理URL就行,给出第一个url,拿到一个页面的信息当然也可以拿到页面的url,重复抓取

时间: 2024-08-30 20:11:05

java-求助jsoup如何翻页取值问题的相关文章

mongodb的java开发查询返回结果后取值的问题

问题描述 mongodb的java开发查询返回结果后取值的问题 用find查询会返回一个document,但是这个document只能获取一级key的数据,如果我想要获得某个子目录的下的数据应该怎么做,好像用get方法取出来的并不谁document类型也就没 办法转型后继续用get方法来取值.比如 {"table":{field:"字段1"}}这个数据格式,在结果的document里可以用get("table")的方式获得"{field

Java中常见的日期操作(取值、转换、加减、比较)_java

Java 的开发过程中免不了与 Date 类型纠缠,准备总结一下项目经常使用的日期相关操作,JDK 版本 1.7,如果能够帮助大家节约那么几分钟起身活动一下,去泡杯咖啡,便是极好的,嘿嘿.当然,我只提供了可行的解决方案,并不保证是最佳实践,欢迎讨论. 1. 日期取值 在旧版本 JDK 的时代,有不少代码中日期取值利用了 java.util.Date 类,但是由于 Date 类不便于实现国际化,其实从 JDK1.1 开始,就更推荐使用 java.util.Calendar 类进行时间和日期方面的处

课后作业求助,如何访问iframe页面的值?

问题描述 主宿页面如何访问iframe页面的值?cpmanager.aspx:<asp:ButtonID="Button1"runat="server"OnClick="Btn_Add"/><iframeid="iframe"src="addcontactor.aspx"></iframe>addcontactor.aspx:<asp:LableID="N

求助!! 翻页后如何保存对前一页记录的操作?

问题描述 假设有一百条记录,每条记录后面都要做一个操作,但是现在这一百条记录是每20条记录一页,分5页展示,如何才能做到每修改20条记录,翻一页,然后再修改20条记录,直至最后修改完成后点击提交,数据库同时更新这100条修改过的记录?求一个简单易懂的实现方法!大神们提供点思路就可以了,感激不尽!! 解决方案 解决方案二:你把每次的修改存到一个缓存表或者临时表里面,提交的时候,用UPDATE语句结合子查询解决方案三:在内存里建立一个对象的缓存(数据库表的缓存),每次修改先修改它,保存的时候再一起提

JSP及JSP页面的翻页

js|翻页|页面 在以列表的形式显示数据时需要对页面进行翻页控制,基本在项目的各模块中都会用到.为了最大限度地实现翻页的可重用和易移植,利用组件的形式对翻页逻辑进行封装. 翻页控制器的分析 描述: 翻页控制器用来实现对WEB页面的翻页内容的显示和翻页的各种操作的控制.通过JSP调用,将分页内容显示到WEB页面.它支持多种方式和风格的显示. 翻页控制器的设计 下面分别创建翻页控制器的一个PageConfig类.一个Page类.一个PageView类. ? PageConfig.java 类 类 P

表单查询显示翻页等不可用,查询按钮的name值不能为submit

按钮|翻页|显示 表单查询显示翻页等不可用,提示对象不支持此属性或方法,切记查询按钮的name值不能为submit.其中原代码如下: 我们应当改为:,不然会出现表单查询显示是点下一步,将继续向下一页翻页,但是点上一页,下一页,等都不可用.本文介绍了我解决问题的方法. 切记查询按钮的name值不能为submit.其中原代码如下: <input name="submit" type="submit" class="button" style=&

JAVA/JSP学习系列之五(JDBC-ODBC翻页例子)

js|odbc|翻页 一.运行前准备 建议了一个MS SQLServer7数据库 DNS,名称为:Test_DB 数据库中有一个表:guestbook字段为:name(varchar),email(varchar),body(text) 数据库用户为sa 密码空,可以自己修改的. 二.代码 <%@ page contentType="text/html;charset=gb2312"%> <% //变量声明 java.sql.Connection sqlCon; //

JAVA/JSP学习系列之八(改写MySQL翻页例子)

js|mysql|翻页 一.前言 其实,改写后的JDBC Data-Source是运行在Servlet中的,通过JNDI去查找数据源.我用Orion试的,将本站<JAVA/JSP学习系列之六(MySQL翻页例子) > 简单改写了一下. 二.配置 (1)JDBC 需要将用到的JDBC驱动Copy到[ORION]/lib目录下 (2)data-source 在[ORION]/config/data-sources.xml文件中加入如下: 〈data-source class="com.e

java数组-JAVA中取值还是会取到重复的

问题描述 JAVA中取值还是会取到重复的 如图中代码,为何还会取到重复的 解决方案 do-while 循环的问题吧 ,=是赋值, == 才是判断相等 while(ss == false) 解决方案二: 而且这个循环的条件应该是while(ss)而不是while(!ss) 解决方案三: 循环条件有点问题. while(ss == false) 解决方案四: =是赋值: == 是值判断:===是属性值都判断:while的判断需要修改 解决方案五: 你的do-while循环里面的,一点作用都没有起到,