【问题标题】:Parse table using JSOUP and display in webview使用 JSOUP 解析表格并在 webview 中显示
【发布时间】:2016-05-28 23:08:54
【问题描述】:

如何使用 JSOUP 解析 request 的响应,我需要从表中获取数据,当我查看源代码时,我发现只是一个静态 html,但我怎么能获取数据?

编辑:

ArrayList<String> downServers = new ArrayList<>();
    Date date = new Date();
      url = "http://billetterie.ctm.ma/site/get_voyages?nat=1&tov1=nat&aller=AS&ag_dep=001&ag_arr=002&datev=29-05-2016&dater=29-05-2016&nbp=1&tpay=MA&horr=non";
    String URL1 = "http://billetterie.ctm.ma/site/select_voyages_aller?datev=29-05-2016&agen_dep=001&agen_dest=002&nbp=1&dater=29-05-2016&aller=AS&tpay=MA&q=1&_search=false&nd="+date.getTime()+"&rows=30&page=1&sidx=&sord=";

    Document doc = null;
    try {
        response = Jsoup.connect(url).timeout(10000).method(Connection.Method.GET).execute();
        Map<String, String> cookies = response.cookies();
        doc = Jsoup.connect(URL1).timeout(10000).cookies(cookies).get();
        ;
    } catch (IOException e) {
        e.printStackTrace();
    }

【问题讨论】:

  • 使用 AJAX 调用请求数据。
  • 那么,我怎样才能得到这些数据,你知道吗??

标签: android jsoup


【解决方案1】:
  1. MainPage 发送GET 请求。响应包含 cookie - 保存它。还记得使用浏览器的user agent 字符串,这样您将获得与浏览器相同的响应。
  2. http://billetterie.ctm.ma/site/select_voyages_aller 发送GET 请求,其中包含阶段1 的cookie 和所有参数 -

    日期=26-05-2016
    agen_dep=001
    agen_dest=002
    nbp=1
    约会者=26-05-2016
    过敏=AS
    tpay=MA
    q=1
    _search=false
    nd=1464315650186
    行=30
    页=1
    sidx=
    sord=

您必须弄清楚每个参数的含义并根据需要进行更改。这将为您提供第一张桌子。

  1. 对于第二个表,发送一个GET 请求到http://billetterie.ctm.ma/site/select_poar_aller,带有cookies 和以下参数 -

    日期=26-05-2016
    agen_dep=001
    agen_dest=002
    nbp=1
    约会者=26-05-2016
    过敏=AS
    q=1
    _search=false
    nd=1464315650212
    行=30
    页=1
    sidx=
    sord=

我怎么知道?打开浏览器的开发人员工具 (F12) 并观察网络流量 - 您将看到 3 个 GET 请求。第一个请求为您提供seesion cookie(它也为您提供页面本身,但您不需要它),另外两个包含表格。

【讨论】:

  • 嗨,谢谢你的帮助,你说得对,你说什么我在导航器网络中发现了类似 json 的响应。
  • 我不知道在哪里可以找到这个参数:nd = XXXXXXXXXX,我查看了 cookie 和响应的标头,但它不存在,请问您可以看看?
  • nd 是 unix 时间戳(以毫秒为单位)。你可以找到很多在线转换器,像这样 - epochconverter.com 或用 Java 自己做 - stackoverflow.com/questions/7784421/…
  • 谢谢你,你是最棒的!
  • 您好,很抱歉打扰您,我按照您所说的第 1 阶段做了,我得到了 coockie,然后我发送带有 cookie 和给定 url 参数的第二个请求,但结果是 coode 500,即使我在我的导航器中尝试 url 它不起作用,我在我的帖子中添加了编辑,你能不能厚脸皮?
猜你喜欢
  • 1970-01-01
  • 2017-02-28
  • 2014-01-01
  • 2019-10-10
  • 1970-01-01
  • 2018-09-04
  • 1970-01-01
  • 2015-08-17
相关资源
最近更新 更多