0

jsoupを使用してインドの都市と町のURLリストからすべての都市名と州名を抽出したいのですが、そのページのHTMLコードスニペットを以下に示します。

ここで、 Abhaypuriは都市の名前であり、Assamは州の名前です。また、同様の都市名と州名が、何千回も表示されるこのようなテーブル構造でページに何度も表示されます。ここでは、tdタグ内 のurlを除いてすべてが同じです。

<table class="wikitable sortable" style="text-align:;">
<tr>
<th>Name of City/Town</th>
<th>Name of State</th>
<th>Classification<pre><code></th>
<th>Population (2001)<pre><code></th>
<th>Population (2011)<pre><code></th>
</tr>
<tr>
<td><pre><code><a href="/wiki/Abhayapuri" title="Abhayapuri">Abhayapuri<pre><code></a><pre><code></td>
<td><pre><code><a href="/wiki/Assam" title="Assam">Assam<pre><code></a><pre><code></td>

私はjsoupを初めて使用します。どんな助けでもいただければ幸いです。ありがとうございました。

4

1 に答える 1

2

サンプルコード:

    Document root = Jsoup.parse(new URL("http://en.wikipedia.org/wiki/List_of_cities_and_towns_in_India"), 30000);
    //find all tables
    Elements tables = root.select("table");
    for (int m = 0; m < tables.size(); m++) {
        final Element table = tables.get(m);
        Elements th0 = table.select("tbody tr th");
        //find our tables
        if (th0 != null && th0.get(0).text().trim().equals("Name of City/Town")) {
            Elements es = table.select("tbody tr");
            for (int i = 1; i < es.size(); i++) {
                Elements td = es.get(i).select("td");
                String city = td.get(0).select("a").first().text();
                String state = td.get(1).select("a").first().text();
                System.out.println(city + " => " + state);
            }
        }
    }

出力:

Abhayapuri => Assam
Achabbal => Jammu and Kashmir
Achalpur => Maharashtra
Achhnera => Uttar Pradesh
Adari => Uttar Pradesh
Adalaj => Gujarat
Adilabad => Andhra Pradesh
Adityana => Gujarat
pereyaapatna => Karnataka
Adoni => Andhra Pradesh
Adoor => Kerala
Adyar => Karnataka
Adra => West Bengal
Afzalpura => Karnataka
Agartala => Tripura
于 2013-01-05T07:32:24.993 に答える