Jsoup получить описание продукта - PullRequest
0 голосов
/ 20 марта 2020

Я хотел бы получить описание продукта на этом сайте: https://www.real.de/product/346010948/?id_item_promotion=620332

Я думаю, что мне нужно, но я понятия не имею, как его проанализировать.

Это мой код синтаксического анализа

@Override
public Product getDescriptionByReal(Product product) {
    String completeUrl = "https://www.real.de/product/" + product.getPlattformProductId() + "/";
    try {
        Document document = Jsoup.connect(completeUrl).get();
        Elements description = document.select("div#prodct-data");
        product.setDesc(description.text());
        return product;

    } catch (IOException e) {
        product.setDesc(e.getMessage());
        return product;
    }
}

Если я попробую "document.select (" div.rd-product-description__text ");" или "document.select (" div # prodct-data ")" я ничего не получаю, если я изменяю его на "document.select (" div "); я получаю не те данные, которые мне нужны.

1 Ответ

0 голосов
/ 21 марта 2020

Описание продукта загружается асинхронно после основного документа. Jsoup может получить доступ только к документу до Javascript изменений. Используя отладчик chrome, я нашел URL, из которого он получен. Вы можете скачать это JSON:
https://www.real.de/pdp-test/api/v1/346010948/product-description/
и проанализировать его, чтобы получить описание. Jsoup не может разобрать JSON, поэтому вам придется использовать другую библиотеку или использовать простое регулярное выражение, чтобы получить часть между <div> и </div>.

...