【问题标题】:How to get data from a URL in new lines using JSOUP?如何使用 JSOUP 从新行中的 URL 获取数据?
【发布时间】:2018-09-19 14:07:09
【问题描述】:

我正在废弃 250 部电影的 IMDB 图表。我想将每个电影名称存储在一个数组中,但我不知道为什么它将所有电影名称放入第一个索引,即 Array[0]。 下面是我的代码。

谁能帮帮我。我必须完成另一个项目,这是需要的主要内容。 如果您能指导我任何网站或教程,我将非常感谢您。

    try {
        Document doc = Jsoup.connect("http://www.imdb.com/chart/top").userAgent("Mozilla").get();

        int counterVariable = 0;
        for (Element el : doc.select(".lister-list")) {

            mString[counterVariable] = el.select(".titleColumn").text();

            totalNumberOfLines++;
            counterVariable++;
        }
    } catch (Exception e) {
        System.out.println("Sorry website couldn't be opened");
        System.out.println(e);
    }

    System.out.println(mString[0]);// It's putting all the names into this index

【问题讨论】:

    标签: java arrays arraylist jsoup html-parsing


    【解决方案1】:

    问题是你只有一个元素匹配选择器.lister-list,所以迭代它没有多大意义。当您调用 el.select(".titleColumn").text(); 时,Jsoup 会连接所有匹配元素的文本。这就是您在一个元素中获得所有结果的原因。相反,您可以尝试选择所有 tittleColumn 类的 td 标签,这些标签是 tr 元素的子元素,它们是 .lister-list 的子元素

    for (Element el : doc.select(".lister-list > tr > td.titleColumn")) {
       mString[counterVariable] = el.text();
       totalNumberOfLines++;
       counterVariable++;
    }
    

    有关 jsoup css 选择器的更多信息,您可以了解here

    【讨论】:

    • 卢克。你知道一些网站可以找到一些关于 JSOUP 的视频教程吗?我在 YouTube 上搜索过,但他们只是在教报废 IMDB 列表。再次感谢您的帮助。
    • 我不知道任何关于Jsoup的视频教程,但我认为他们网站上的文字示例非常好。
    猜你喜欢
    • 2014-05-09
    • 2014-09-06
    • 1970-01-01
    • 1970-01-01
    • 2021-10-27
    • 2016-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多