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

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

Как я могу получитьp теги с использованием jsoup

Elements e = doc.select(""); 

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

Ответы на вопрос(3)

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

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);
        }
    }
}
String testText1 = d.select("body").text();
System.out.println(testText);

или же

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

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

Решение Вопроса

Это может сделать работу

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="<p>some text</p><span>some other text</span><p> another p tag</p>"

Чтобы получить значения от двух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

Вы можете найти больше информацииВот также

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

 rena-c23 мая 2013 г., 14:07
Да, я знаю, что он получает p-теги из кулинарной книги, но со сложными структурами, такими как <p> <ш> или <p класс ... и т. д. он не работает для них. Для всей структуры записи html он должен давать тот же результат. Как я могу это сделать?
 MaVRoSCy23 мая 2013 г., 14:17
@ cane-r посмотри мое обновление
 RunLoop18 авг. 2016 г., 10:43
Примечание: при использованииselect.("p").first(); он вернет второй элемент, если первый элемент пуст, например, за<p> </p><p>test</p>, функция вернетсятестовое задание" скорее, чем " ", Мне пришлось использовать getElementsByTag, чтобы обойти это.

Ваш ответ на вопрос