我想从放置在p
和li
标签中的HTML页面中提取文本,因此我可以开始对页面进行标记,以便按顺序为每个页面构建反向索引(es)回答搜索查询。
如何使用jsoup
获取p
个标签
Elements e = doc.select("");
可以在该参数中写入的字符串是什么?
答案 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);
}
}
}