В настоящее время я работаю над настольным Java-приложением для компании, и они просят меня извлечь 5 последних статей с веб-страницы и отобразить их в приложении. Для этого мне, конечно, нужен синтаксический анализатор HTML, и я думал непосредственно о JSoup. Но моя проблема в том, как мне это сделать? Я нашел один простой пример из этого вопроса: Пример: как «просканировать» веб-сайт (или страницу) в поисках информации и добавить ее в мою программу?
с этим кодом:
package com.stackoverflow.q2835505;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class Test {
public static void main(String[] args) throws Exception {
String url = "https://stackoverflow.com/questions/2835505";
Document document = Jsoup.connect(url).get();
String question = document.select("#question .post-text").text();
System.out.println("Question: " + question);
Elements answerers = document.select("#answers .user-details a");
for (Element answerer : answerers) {
System.out.println("Answerer: " + answerer.text());
}
}
}
этот код был написан BalusC, и я это понимаю, но как мне это сделать, если ссылки не зафиксированы, что, например, имеет место в большинстве газет. Для простоты, как я могу извлечь, например, 5 последних статей с этой страницы новостей: Новости? Я не могу использовать RSS-канал, так как мой босс хочет, чтобы статьи отображались полностью.
Прокрутите до ссылки RSS и используйте RSS. Фактически, я должен опубликовать это как ответ. Да, и здесь - это мировая лента.
Спасибо Gauthaman и Elliot, но я уже думал об этом, и моему начальнику не нужен RSS-канал, он хочет, чтобы все 5 статей были завершены, а не в качестве предварительного просмотра, как это отображается в RSS-потоках.




Для начала нужно скачать главную страницу:
Document doc = Jsoup.connect("https://globalnews.ca/world/").get();
Затем вы выбираете интересующие вас ссылки например с селекторы css
Вы выбираете все теги a, которые содержат href с текстом globalnews и вложены в тег h3 с классом story-h. URL-адреса находятся в атрибуте href тега a.
for(Element e: doc.select("h3.story-h > a[href*=globalnews]")) {
System.out.println(e.attr("href"));
}
Затем полученные URL-адреса вы можете обрабатывать по своему усмотрению. Вы можете загрузить содержимое первых пяти из них, используя синтаксис из первой строки и т. д.
Большое спасибо, вот что я искал Лука !!
Можете ли вы попробовать по ссылке хакерские новости? кстати, что за ошибка вы получаете?