如何在<p>标签之间提取文本</p>

时间:2013-05-23 11:52:08

标签: java html parsing jsoup

我想从放置在pli标签中的HTML页面中提取文本,因此我可以开始对页面进行标记,以便按顺序为每个页面构建反向索引(es)回答搜索查询。

如何使用jsoup

获取p个标签
Elements e = doc.select(""); 

可以在该参数中写入的字符串是什么?

3 个答案:

答案 0 :(得分:20)

这可以完成这项工作

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

以下是您可以使用的所有selectors的列表。

假设你有这个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

您还可以找到更多信息here

希望这有帮助

答案 1 :(得分:0)

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

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

您可以使用它来获取标签中的文字。

答案 2 :(得分:0)

试试这个:

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);
        }
    }
}