Как мне создать селектор для извлечения текста независимо от того, какой URL статьи указан?
Вы не можете.Все сайты имеют свою собственную структуру HTML.Откройте страницу в веб-браузере самостоятельно, щелкните правой кнопкой мыши и Просмотр источника .Посмотрите.Вы должны создать отдельный селектор для каждого отдельного сайта.
Для вашего первого примера, предполагая, что это HTML целом , текст, таким образом, находится внутри этих тегов <p>
.Затем вы можете использовать
Document html = Jsoup.parse(yourHtmlString);
Elements paragraphs = html.select("p");
String text = paragraphs.text();
// ...
Для вашего сайта CNN, в соответствии с источником HTML вы хотите получить все <p>
из <div class="cnn_strycntntlft">
, поэтому этот селектор должен сделать:
Document document = Jsoup.connect("http://www.cnn.com/2011/WORLD/europe/08/12/uk.riots.dan.rivers/index.html?hpt=hp_c2").get();
Elements paragraphs = document.select(".cnn_strycntntlft p");
String text = paragraphs.text();
// ...
Кстати, было бы проще использовать их RSS-каналы, а не анализировать весь HTML.Многие новостные сайты предоставляют RSS-каналы именно для этой цели.