0

以下のようないくつかの同様の構造を含むソースを含む Web ページがあります。

<tr>
<td width="10%" bgcolor="#FFFFFF"><font class="bodytext9">1-Jun-2013</font></td>
<td width="4%" bgcolor="#FFFFFF" align=center><font class="bodytext9">Sat</font></td>
<td width="5%" bgcolor="#FFFFFF" align="center"></td>
<td width="5%" bgcolor="#FFFFFF" align="center"><font class="bodytext9">Another Text</font></td>
<td width="5%" bgcolor="#FFFFFF" align="center"><font class="bodytext9"><img src="img/colors/white.gif"></font></td>
<td width="15%" bgcolor="#FFFFFF" align="center"><a class="black_9" href="link2">Here is also Text</a></td>
<td width="15%" bgcolor="#FFFFFF" align="center"><a href="LINKtoWeb" class=list><u>STRING TO CAPTURE</u></a></td>
<td width="4%" bgcolor="#FFFFFF" align="center"><a target="_new" href="AnotherLink"><img src="img/img2.gif" border="0"></a></td>
</tr>

この種の構造は、さまざまなテキストを内部に何度も繰り返しましたが、「STRING TO CAPTURE」というテキストが最初にここに表示されるため、このセットのみを抽出したいと思います。では、Jsoup を使用して、このセットと、その間に表示されているテキスト、および URL のみを抽出するにはどうすればよいですか

AnotherLink

テキスト「STRING TO CAPTURE」の行に表示されますか?私はJsoupが初めてなので、これだけを試しました

  Document doc = Jsoup.connect("http://www.website.com").get();

Element link = doc.select("a").first();
String relHref = link.attr("href"); 
String absHref = link.attr("abs:href"); 
String text = doc.body().text();
String linkHref = link.attr("href"); 
String linkText = link.text(); 

  System.out.println("link:" + link);
  System.out.println("text:" + text);

しかし、この目的のために事前にそれを行うことはできません。アドバイスをお願いします! ありがとうございました !

4

1 に答える 1

1

このテスト入力の使用:

String test = "<html><body><table>";
test += "<tr>";
test += "<td width=\"10%\" bgcolor=\"#FFFFFF\"><font class=\"bodytext9\">1-Jun-2013</font></td>";
test += "<td width=\"4%\" bgcolor=\"#FFFFFF\" align=center><font class=\"bodytext9\">Sat</font></td>";
test += "<td width=\"5%\" bgcolor=\"#FFFFFF\" align=\"center\"></td>";
test += "<td width=\"5%\" bgcolor=\"#FFFFFF\" align=\"center\"><font class=\"bodytext9\">Another Text</font></td>";
test += "<td width=\"5%\" bgcolor=\"#FFFFFF\" align=\"center\"><font class=\"bodytext9\"><img src=\"img/colors/white.gif\"></font></td>";
test += "<td width=\"15%\" bgcolor=\"#FFFFFF\" align=\"center\"><a class=\"black_9\" href=\"link2\">Here is also Text</a></td>";
test += "<td width=\"15%\" bgcolor=\"#FFFFFF\" align=\"center\"><a href=\"LINKtoWeb\" class=list><u>TEXT THAT DOESN'T MATCH</u></a></td>";
test += "<td width=\"4%\" bgcolor=\"#FFFFFF\" align=\"center\"><a target=\"_new\" href=\"NotMatchLink\"><img src=\"img/img2.gif\" border=\"0\"></a></td>";
test += "</tr>";
test += "<tr>";
test += "<td width=\"10%\" bgcolor=\"#FFFFFF\"><font class=\"bodytext9\">1-Jun-2013</font></td>";
test += "<td width=\"4%\" bgcolor=\"#FFFFFF\" align=center><font class=\"bodytext9\">Sat</font></td>";
test += "<td width=\"5%\" bgcolor=\"#FFFFFF\" align=\"center\"></td>";
test += "<td width=\"5%\" bgcolor=\"#FFFFFF\" align=\"center\"><font class=\"bodytext9\">Another Text</font></td>";
test += "<td width=\"5%\" bgcolor=\"#FFFFFF\" align=\"center\"><font class=\"bodytext9\"><img src=\"img/colors/white.gif\"></font></td>";
test += "<td width=\"15%\" bgcolor=\"#FFFFFF\" align=\"center\"><a class=\"black_9\" href=\"link2\">Here is also Text</a></td>";
test += "<td width=\"15%\" bgcolor=\"#FFFFFF\" align=\"center\"><a href=\"LINKtoWeb\" class=list><u>STRING TO CAPTURE</u></a></td>";
test += "<td width=\"4%\" bgcolor=\"#FFFFFF\" align=\"center\"><a target=\"_new\" href=\"AnotherLink\"><img src=\"img/img2.gif\" border=\"0\"></a></td>";
test += "</tr>";
test += "<tr>";
test += "<td width=\"10%\" bgcolor=\"#FFFFFF\"><font class=\"bodytext9\">1-Jun-2013</font></td>";
test += "<td width=\"4%\" bgcolor=\"#FFFFFF\" align=center><font class=\"bodytext9\">Sat</font></td>";
test += "<td width=\"5%\" bgcolor=\"#FFFFFF\" align=\"center\"></td>";
test += "<td width=\"5%\" bgcolor=\"#FFFFFF\" align=\"center\"><font class=\"bodytext9\">Another Text</font></td>";
test += "<td width=\"5%\" bgcolor=\"#FFFFFF\" align=\"center\"><font class=\"bodytext9\"><img src=\"img/colors/white.gif\"></font></td>";
test += "<td width=\"15%\" bgcolor=\"#FFFFFF\" align=\"center\"><a class=\"black_9\" href=\"link2\">Here is also Text</a></td>";
test += "<td width=\"15%\" bgcolor=\"#FFFFFF\" align=\"center\"><a href=\"LINKtoWeb\" class=list><u>MORE TEXT THAT DOESN'T MATCH</u></a></td>";
test += "<td width=\"4%\" bgcolor=\"#FFFFFF\" align=\"center\"><a target=\"_new\" href=\"NotMatchLink\"><img src=\"img/img2.gif\" border=\"0\"></a></td>";
test += "</tr>";
test += "<tr>";
test += "<td width=\"10%\" bgcolor=\"#FFFFFF\"><font class=\"bodytext9\">1-Jun-2013</font></td>";
test += "<td width=\"4%\" bgcolor=\"#FFFFFF\" align=center><font class=\"bodytext9\">Sat</font></td>";
test += "<td width=\"5%\" bgcolor=\"#FFFFFF\" align=\"center\"></td>";
test += "<td width=\"5%\" bgcolor=\"#FFFFFF\" align=\"center\"><font class=\"bodytext9\">Another Text</font></td>";
test += "<td width=\"5%\" bgcolor=\"#FFFFFF\" align=\"center\"><font class=\"bodytext9\"><img src=\"img/colors/white.gif\"></font></td>";
test += "<td width=\"15%\" bgcolor=\"#FFFFFF\" align=\"center\"><a class=\"black_9\" href=\"link2\">Here is also Text</a></td>";
test += "<td width=\"15%\" bgcolor=\"#FFFFFF\" align=\"center\"><a href=\"LINKtoWeb\" class=list><u>STILL MORE TEXT THAT DOESN'T MATCH</u></a></td>";
test += "<td width=\"4%\" bgcolor=\"#FFFFFF\" align=\"center\"><a target=\"_new\" href=\"NotMatchLink\"><img src=\"img/img2.gif\" border=\"0\"></a></td>";
test += "</tr>";
test += "</table></body></html>";
test += "<td width=\"10%\" bgcolor=\"#FFFFFF\"><font class=\"bodytext9\">Second 1-Jun-2013</font></td>";
test += "<td width=\"4%\" bgcolor=\"#FFFFFF\" align=center><font class=\"bodytext9\">Second Sat</font></td>";
test += "<td width=\"5%\" bgcolor=\"#FFFFFF\" align=\"center\"></td>";
test += "<td width=\"5%\" bgcolor=\"#FFFFFF\" align=\"center\"><font class=\"bodytext9\">Second Another Text</font></td>";
test += "<td width=\"5%\" bgcolor=\"#FFFFFF\" align=\"center\"><font class=\"bodytext9\"><img src=\"img/colors/white.gif\"></font></td>";
test += "<td width=\"15%\" bgcolor=\"#FFFFFF\" align=\"center\"><a class=\"black_9\" href=\"link2\">Second Here is also Text</a></td>";
test += "<td width=\"15%\" bgcolor=\"#FFFFFF\" align=\"center\"><a href=\"LINKtoWeb\" class=list><u>STRING TO CAPTURE</u></a></td>";
test += "<td width=\"4%\" bgcolor=\"#FFFFFF\" align=\"center\"><a target=\"_new\" href=\"SecondAnotherLink\"><img src=\"img/img2.gif\" border=\"0\"></a></td>";
test += "</tr>";

そして、このコード:

final Document document = Jsoup.parse(test);
final Element entireRow = document.select("tr:contains(STRING TO CAPTURE)").get(0);
for (final Element column : entireRow.select("td")) {
    System.out.println("Column text is: " + column.text());
}
final Elements link = entireRow.select("td:contains(STRING TO CAPTURE) + td > a[href]");
System.out.println("Target link is: " + link.attr("href"));

以下を出力します。

Column text is: 1-Jun-2013
Column text is: Sat
Column text is: 
Column text is: Another Text
Column text is: 
Column text is: Here is also Text
Column text is: STRING TO CAPTURE
Column text is: 
Target link is: AnotherLink
于 2013-05-30T12:55:08.910 に答える