一些在维基百科页面歧义的HTML的是,我们应该说,暧昧的,即连接到名为特定的人的联系有Corzine
难以捕捉使用jsoup因为他们没有明确的结构,也不会生活在一个特定部分作为在这个例子中 。 看到页面在这里克辛页 。
我怎样才能让他们的联系呢? 是jsoup此任务的合适工具?
也许我应该用正则表达式,但我担心这样做,因为我希望它是普及应用。
</b> may refer to:</p>
<ul>
<li><a href
^这这里是标准的,也许我可以使用正则表达式来匹配?
<p><b>Corzine</b> may refer to:</p>
<ul>
<li><a href="/wiki/Dave_Corzine" title="Dave Corzine">Dave Corzine</a> (born 1956), basketball player</li>
<li><a href="/wiki/Jon_Corzine" title="Jon Corzine">Jon Corzine</a> (born 1947), former CEO of <a href="/wiki/MF_Global" title="MF Global">MF Global</a>, former Governor on New Jersey, former CEO of <a href="/wiki/Goldman_Sachs" title="Goldman Sachs">Goldman Sachs</a></li>
</ul>
<table id="setindexbox" class="metadata plainlinks dmbox dmbox-setindex" style="" role="presentation">
理想的输出将是
Dave Corzine
Jon Corzine
也许将有可能相匹配的部</b> may refer to:</p>
并且还<table id="setindexbox"
并提取之间的所有这英寸 我想<table id="setindexbox"
可以容易地匹配足够jsoup,但</b> may refer to:</p>
应该更difficule因为<b>
或<p>
不是非常杰出的。
我尝试这样做:
Elements table = docx.select("ul");
Elements links = table.select("li");
Pattern ppp = Pattern.compile("table id=\"setindexbox\" ");
Matcher mmm = ppp.matcher(inputLine);
Pattern pp = Pattern.compile("</b> may refer to:</p>");
Matcher mm = pp.matcher(inputLine);
if (mm.matches())
{
while(!mmm.matches())
for (Element link: links)
{
String url = link.attr("href");
String text = link.text();
System.out.println(text + ", " + url);
}
}
但没有奏效。