Jsoup.body () возвращает пустое тело - PullRequest
0 голосов
/ 01 июня 2018

Я пытаюсь получить содержимое тела HTML, но оно возвращает пустое тело только для этого конкретного сайта, что это может быть?

Document doc = Jsoup
            .connect("http://givatram.ort.org.il/%D7%9C%D7%95%D7%97-%D7%A9%D7%99%D7%A0%D7%95%D7%99%D7%99-%D7%9E%D7%A2%D7%A8%D7%9B%D7%AA/")
            .userAgent(
                    "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.110 Safari/537.36")
            .timeout(0).followRedirects(true).execute().parse();
    Elements titles = doc.select(".entrytitle");

    System.out.println(doc.body());

1 Ответ

0 голосов
/ 01 июня 2018

Я мог бы воспроизвести вашу проблему.Если я проверяю весь документ с помощью System.out.println(doc), то вижу, что в теге head есть скрипт, который указывает, что он подключается к сайту .Согласно этот ответ Jsoup является только чистым анализатором HTML и не выполняет Javascript.Может быть, содержимое сайта загружается через Javascript, и поэтому тело пусто?

Редактировать 1:

Я мог это проверить.Если я использую ui4j , небольшую оболочку для браузера JavaFx, я вижу тело:

BrowserEngine browser = BrowserFactory.getWebKit();
Page page = browser.navigate("http://givatram.ort.org.il/%D7%9C%D7%95%D7%97-%D7%A9%D7%99%D7%A0%D7%95%D7%99%D7%99-%D7%9E%D7%A2%D7%A8%D7%9B%D7%AA/");
System.out.println(page.getDocument().getBody());

Так что, похоже, то, что вы пытаетесь сделать, к сожалению, невозможно с JSoup.

...