使用JSoup进行网页搜集下拉列表

时间:2017-11-01 17:23:37

标签: java web-scraping jsoup

我正在创建一个机器人,它将生成一个链接到Adidas.com上的任何鞋子,然后检查鞋子的可用尺寸,给出鞋子的型号#和用户的鞋子尺寸

为了获得鞋子的可用尺寸,我使用JSoup进行网页抓取。阿迪达斯为用户提供了一个下拉列表,可以为任何给定的鞋子选择所需的尺寸。当我检查下拉列表时,网页上有很多嵌套元素,但我确定可用大小的实际列表是下面这段代码:

<select class="select___Kst06">
    <option value="defaultOption" disabled="" hidden=""></option>
    <option value="0">5</option>
    <option value="1">6</option>
    <option value="2">7</option>
    <option value="3">7.5</option>
    <option value="4">8</option>
    <option value="5">8.5</option>
    <option value="6">9</option>
    <option value="7">9.5</option>
    <option value="8">10</option>
    <option value="9">10.5</option>
    <option value="10">11</option>
    <option value="11">11.5</option>
    <option value="12">12</option>
    <option value="13">12.5</option>
    <option value="14">13</option>
    <option value="15">14</option>
</select>

现在,给定此列表,我想检索这些值并在我的代码中返回它们。我有这种方法可以做到这一点:

public static String[] checkSizes(String addr) {
    String[] sizesAvailable = null;
    try {
        Document document = Jsoup.connect(addr).get();
        Elements sizes = document.select(".select___Kst06");
        sizesAvailable = new String[sizes.size()];
        for (int i = 0; i < sizes.size(); i++) {
            sizesAvailable[i] = sizes.get(i).text();
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
    return sizesAvailable;
}

但是,当我运行该方法时,我得到一个空数组[]返回。我尝试了无数的选择器语法组合,但无济于事。它应该不是很难,但我只是缺少那个明显的查询。在这种情况下,我做错了什么?

我是JSoup的新手,所以请耐心等待。如果有人想自己检查一下,here是指向“测试”的链接。鞋子,如果你愿意的话。网站上的每一双鞋都有相同的模板。感谢您的帮助。

0 个答案:

没有答案