jsoup元素

lf3rwulv  于 2021-07-03  发布在  Java
关注(0)|答案(1)|浏览(363)

我正在做一个安卓应用程序,我想用摩托车在网页上搜刮。当我迭代了那个页面的元素之后,它们被打印了html标签,但是因为我 .text() 方法,我把所有的东西都打印在终端的一行上。你可以在下面查看我的代码以便更好地理解。提前谢谢。

@Override
protected String doInBackground(Void... voids) {
    String title = "";
    try {
        Document document = Jsoup.connect("https://www.hotcars.com/best-motorcycles-for-beginners/").get();
        Elements elements = document.select("div[class=w-website]").select("div[class=w-content]");

        for (Element element : elements.select("section[class=article-body]")) {
            title = element.select("h2").text();
            System.out.print(title);
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
    return null;
}

如果我删除 .text()title ,然后我得到我的文本,但与html标记,我不需要。

0tdrvxhp

0tdrvxhp1#

尝试以下操作作为获取所需元素的起点

try {
    Document document = Jsoup.connect("https://www.hotcars.com/best-motorcycles-for-beginners/").get();
    Elements h2s = document.select("section[class=article-body] h2");

    for (Element h2 : h2s) {
        String title = h2.text();
        Element img = h2.nextElementSibling().selectFirst("picture").selectFirst("source");
        String imgSrc = img.attr("data-srcset");
        Element p1 = h2.nextElementSibling().nextElementSibling();
        Element p2 = p1.nextElementSibling();
        String discription = p1.wholeText() + System.lineSeparator() + p2.wholeText();
        System.out.println(title);
        System.out.println();
        System.out.println(imgSrc);
        System.out.println();
        System.out.println(discription);
        System.out.println("------------------------");
    }
} catch (IOException e) {
    e.printStackTrace();
}

相关问题