【发布时间】:2018-04-09 08:22:56
【问题描述】:
我想从位于p 和li 标记中的HTML 页面中提取文本,因此我可以开始标记页面以为每个页面构建倒排索引以回答搜索查询.
如何使用 jsoup 获取 p 标签
Elements e = doc.select("");
该参数中要写入的字符串是什么?
【问题讨论】:
我想从位于p 和li 标记中的HTML 页面中提取文本,因此我可以开始标记页面以为每个页面构建倒排索引以回答搜索查询.
如何使用 jsoup 获取 p 标签
Elements e = doc.select("");
该参数中要写入的字符串是什么?
【问题讨论】:
这样就可以了
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
希望这有帮助
【讨论】:
或
select.("p").first();时,如果第一个元素为空,它将返回第二个元素,例如对于<p> </p><p>test</p>,函数将返回“test”而不是“”。我不得不使用 getElementsByTag 来解决它。
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);
}
}
}
【讨论】: