我正在尝试从网页中提取特定文字?
这是包含特定文字的网页部分:
<div class="module">
<div class="body">
<dl class="per_info">
<dt>F.Name:</dt>
<dd><a class="nm" href="http://">a Variable Name1</a></dd>
<dt>L.Name:</dt>
<dd><a class="nm" href="http://">a Variable Name2</a></dd>
</dl>
</div>
</div>
如何提取变量名1和变量名2的内容?
是否有任何html解析器可以执行此提取?
答案 0 :(得分:0)
好吧,您可以尝试使用Selenium,它会以支持DOM的方式将html页面加载到您的Java代码中,以便之后您可以根据id,xpath等选择HTML元素的内容。
答案 1 :(得分:0)
TagSoup是一个符合SAX的解析器,能够解析“wild”中的HTML。因此,不需要格式良好的XML。
答案 2 :(得分:0)
jsoup是一个Java库,可以解析HTML并提取元素数据。要使用jsoup,首先要通过从文件,URL,整个文档字符串或HTML片段字符串中解析来创建jsoup Document。 HTML fragment示例类似于:
String html = "<div class='module'>" +
"<div class='body'>" +
"<dl class='per_info'>" +
"<dt>F.Name:</dt>" +
"<dd><a class='nm' href='http://'>a Variable Name1</a></dd>" +
"<dt>L.Name:</dt>" +
"<dd><a class='nm' href='http://'>a Variable Name2</a></dd>" +
"</dl>" +
"</div>" +
"</div>";
Document doc = Jsoup.parseBodyFragment(html);
使用该文档,您可以使用jsoup的selectors来查找特定元素:
// select all <a/> elements from the document
Elements anchors = doc.select("a")
使用元素集合,您可以对元素进行迭代并提取其元素内容:
for (Element anchor : anchors) {
String contents = anchor.text();
System.out.println(contents);
}