Jsoup で Web ページをスクレイピングするのに助けが必要です。hcfactions Web ページからプレイヤー プロファイルを解析し、キルとデスを収集したいと考えています。私が直面している問題は、各プロファイル ページが動的に作成され、プレイヤーがキルまたはデスした場合にのみテーブルが表示されることです。そのため、どのテーブルを解析しているかを知るために、呼び出し後に設定されたヘッダー テキストを取得する必要があります。
Web ページの例: http://www.hcfactions.net/index.php?action=playerinfo&player=Djmaddox .
以下は、私がスクレイピングしている Web ページの html セグメントです。
<table class='table-bordered'><h2 style='text-align:center'>Deaths</h2>
<tr><td>Date</td><td>Reason</td><td>Details</td></tr><tr><td>Dec 11 5:27pm CST</td>.....
テーブルをプルしてエントリをカウントするこのコードがありますが、選択するためにh2タグをプルしません。
public void getPlayerDetails(String name) {
String data = "";
Avatar temp = _db.getPlayer(name);
playerUrl = "http://www.hcfactions.net/index.php?action=playersearch&player=" + name;
try {
// data = Jsoup.connect(url)
// .url(url).get().html();
playerDoc = Jsoup.connect(playerUrl).get();
} catch (IOException ex) {
Logger.getLogger(JParser.class.getName()).log(Level.SEVERE, null, ex);
}
if (playerDoc.select("table").size() == 1) {
return;
} else if (playerDoc.select("table").size() >= 2) {
for (int x = 1; x < playerDoc.select("table").size(); x++) {
System.out.println("deaths");
Element table = playerDoc.select("table").get(x);
Iterator<Element> ite = table.select("tr").iterator();
int count = 0;
while (ite.hasNext()) {
data = ite.next().text();
count++;
}
if (count > 0) {
temp.setDeaths(count - 1);
}
}
}
}