Ничего не печатается из getElementByClass Jsoup

У меня есть интернет-магазин, из которого мне нужно получить набор продуктов с определенными параметрами, такими как название, цена, описание и т. Д., После того, как я найду какие-то проекты. Поиск осуществляется посредством ввода ключевого слова. Вот веб-сайт: https://www.aboutyou.de/dein-shop. И это поиск, который я пытался разобрать: https://www.aboutyou.de/frauen/accessoires/huete-und-muetzen/caps?pl=1

Поэтому мне нужно получить все эти данные, учитывая, что в html-источнике страницы есть сложная иерархия тегов. Я попытался получить свои элементы по классам, кроме самого высокого, который отмечен идентификатором и обернут телом. Итак, я попытался сделать что-то подобное с помощью jsoup:

lements resultt = doc.body().select("main#app");
    for(Element el : resultt){
        Elements main = el.getElementsByClass("section.layout_11glwo1-o_O-stretchLayout_1jug6qr > " +
                "div.content_1jug6qr > " +
                "div.container > " +
                "div.mainContent_10ejhcu > " +
                "div.productStream_6k751k > " +
                "div > " +
                "div.wrapper_8yay2a > " +
                "div.col-sm-6.col-md-4 > " +
                "div.wrapper_1eu800j > " +
                "div > " +
                "div.categoryTileWrapper_e296pg > " +
                "a.anchor_wgmchy > " +
                "div.details_197iil9 > " +
                "div.meta_1ihynio > " +
                "div.finalPrice_11ythok > " +
                "span.price_1543wg1");
        System.out.println("just print it" + main.text());
    }

Но после фразы «просто напечатайте» ничего не печатается. Я знаю, что это не проблема конфигурации, так как я привязывал некоторую информацию к драгоценному камню, используя теги более высокого уровня. Что я могу изменить в своем коде, чтобы получить информацию об объектах этого продукта? Я новичок в jsoup, поэтому буду благодарен за любую помощь!


person dark_matter88    schedule 22.12.2017    source источник
comment
Трудно сказать, не видя веб-страницы.   -  person TDG    schedule 23.12.2017
comment
@TDG я обновил вопрос, добавив ссылки   -  person dark_matter88    schedule 23.12.2017


Ответы (1)


Если вы замените Elements main = el.getElementsByClass("section.layout_11glwo1-o_O-stretchLayout_1jug6qr >... на el.select, вы получите список всех цен:

17,90€ 19,90€ 19,90€ 24,90€ 19,90€ 24,90€ 24,90€ 19,90€ 17,90€ 19,90€ 17,90€ 49,90€ 39,90€ 39,90€ 17,90€ 19,99€ 39,90€ 19,99€ 34,95€ 17,90€

Вероятно, это потому, что селектор не является селектором класса.

EDIT это полный код, который работает для меня -

Document doc = Jsoup.connect("https://www.aboutyou.de/frauen/accessoires/huete-und-muetzen/caps?pl=1")
            .userAgent("Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:57.0) Gecko/20100101 Firefox/57.0")
            .get();
    Elements result = doc.body().select("main#app");
    for(Element el : result) {
        Elements e = el.select("section.layout_11glwo1-o_O-stretchLayout_1jug6qr > " +
                "div.content_1jug6qr > " +
                "div.container > " +
                "div.mainContent_10ejhcu > " +
                "div.productStream_6k751k > " +
                "div > " +
                "div.wrapper_8yay2a > " +
                "div.col-sm-6.col-md-4 > " +
                "div.wrapper_1eu800j > " +
                "div > " +
                "div.categoryTileWrapper_e296pg > " +
                "a.anchor_wgmchy > " +
                "div.details_197iil9 > " +
                "div.meta_1ihynio > " +
                "div.finalPrice_11ythok > " +
                "span.price_1543wg1");
        System.out.println(e.text());
    }
person TDG    schedule 23.12.2017
comment
Когда я перехожу к выбору, я все равно ничего не печатаю - person dark_matter88; 23.12.2017
comment
Спасибо! Это сработало. Я пытался подключиться к другому URL-адресу. Вот почему я ничего не мог получить. - person dark_matter88; 23.12.2017