Как извлечь тексты между тегами

Я хочу извлечь тексты из HTML-страниц, которые размещены в p и li теги, поэтому я могу начать токенизировать страницу для создания инвертированного индекса(индексов) для каждой страницы, чтобы ответить на поисковые запросы.

как я могу получить p теги с помощью jsoup

Elements e = doc.select(""); 

какая строка может быть записана в этом параметре?

3 ответов


это может сделать задание

Elements e=doc.select("p"); 

вот список всех селекторы вы можете использовать.

Предположим, у вас есть этот HTML:

String html="<p>some <strong>bold</strong> text</p>";

и some bold text в результате вы должны использовать:

Document doc = Jsoup.parse(html);
Element p= doc.select("p").first();
String text = doc.body().text(); //some bold text

или

String text = p.text(); //some bold text

предположим, теперь у вас есть следующий сложный html

String html="<div id=someid><p>some text</p><span>some other text</span><p> another p tag</p></div>"

чтобы получить значения из двух p теги, вы должны сделать что-то подобное

Document doc = Jsoup.parse(html);
Element content = doc.getElementById("someid");
Elements p= content.getElementsByTag("p");

String pConcatenated="";
for (Element x: p) {
  pConcatenated+= x.text();
}

System.out.println(pConcatenated);//sometext another p tag

вы можете найти более подробную информацию здесь и

надеюсь, что это помогло


String testText1 = d.select("body").text();
System.out.println(testText);

или

String testText2 = d.select("body p").text();
System.out.println(testText);

Вы можете использовать это для получения текста из тегов.


попробуйте это:

File input = new File("/home/s5/Downloads/PDFCopy/PDs.html");
        Document doc = Jsoup.parse(input, "UTF-8","http://www.cisco.com/c/en/us/products/collateral/wireless/aironet-1815-series-access-points/datasheet-c78-738481.pdf");
        Elements link = doc.select("p");
        String linkText = link.text();
        //System.out.println(linkText);
        String[] words=linkText.split("\W");
        for(String str:words) 
        {
            System.out.println(str);
        }
    }
}