JSoup не получает ссылки на веб-странице - PullRequest
0 голосов
/ 29 августа 2018

Я анализирую карту сайта с помощью JSoup.

Document dom = Jsoup.parse(new URL(pageRacine).openStream(), "UTF-8", "https://www.lavisducagou.nc/page-sitemap.xml");
Elements liens = dom.getElementsByTag("a");
System.out.println(liens.size() + " links have been retrieved");

Выход:

0 links have been retrieved

Я тоже пробовал это, но это не работает:

Document dom = Jsoup.parse(String.valueOf(new URL("https://www.lavisducagou.nc/page-sitemap.xml").openStream()), "", Parser.xmlParser());
liens = dom.select("a");

Может ли кто-нибудь мне помочь Я сумасшедший?

РЕДАКТИРОВАТЬ : System.out.println(dom.body()); выходы null.

1 Ответ

0 голосов
/ 29 августа 2018

Вы не получаете никаких ссылок, потому что в карте сайта нет элементов с тегом a. URL-адреса в карте сайта находятся в теге loc. Используйте Elements liens = dom.getElementsByTag("loc");

Возможно, вы ошиблись тем, что получаете в браузере. При использовании браузера вы получаете два запроса. Один для загрузки sitemap.xml и второй для получения main-sitemap.xsl, который содержит информацию для браузера о том, как отображать XML-файл.

Jsoup этого не делает. Используйте System.out.println(dom.html()), чтобы увидеть, как выглядит документ, загруженный Jsoup.

Используйте вкладку сети в вашем браузере, чтобы увидеть, какие элементы были загружены, чтобы отобразить данные.

...