1

次のURLで大きなテーブルのテーブルIDを見つけるにはどうすればよいですか: http://en.wikipedia.org/wiki/States_and_territories_of_India

授業を見ることができましたwikitable sortable jquery-tablesorter

これは、インドの州のリストを含むテーブルです。wikitable sortable jquery-tablesorterこのテーブル =に状態のリストがあることを firebug から確認できました。そのテーブルのIDを取得するにはどうすればよいですか?

そのテーブル内のすべての名前を取得するのに相当する CSS は何ですか?

州だけを取得したい...最初の列。jsoupを使用しています。

4

5 に答える 5

1

これがまだ保留中の問題である場合、インドの州のリストを取得する方法は次のとおりです。

public static void main(String[] args) throws IOException
    {

        Document doc = Jsoup.connect("http://en.wikipedia.org/wiki/States_and_territories_of_India").get();

        Elements tables = doc.select("table");

        for (Element table : tables) {
            Element tableCaption = table.getElementsByTag("big").first();
            if (tableCaption != null && tableCaption.text().equals("States of India")) {
                Document statesDoc = Jsoup.parse(table.toString());
                Elements states = statesDoc.select("tr td:eq(0)");
                for (Element state : states) {
                    System.out.println(state.text().replaceAll("\\[\\d\\]", ""));
                }
            }
        }

    }
于 2012-08-19T03:24:26.567 に答える
0

JQueryの使用。クラスwikitablesortablejquery-table-sorterを持つ最初のテーブルが必要です。

$(".wikitable.sortable.jquery-table-sorter").first()

ただし、cssクラスはいつでも変更される可能性があるため、それに依存することはありません。wikiページを編集できる人に、すべてのテーブルにIDを追加するよう依頼する価値があるかもしれません。

于 2012-08-16T03:07:05.500 に答える
0

このテーブルをスクリーンスクレイピングしようとしているようです。

あなたの質問への答えは、その特定の id がない<table>ことです。

テーブルを開始する html は次のとおりです。

<table class="wikitable sortable jquery-tablesorter" style="width:70%;">

ご覧のとおりid、その要素には属性がありません。

HTML を解析するためにどのライブラリを使用していますか? JavaScriptdocument.getElementsByClassName('wikitable')[0]では、ページ上で一意にそれを使用して見つけることができます。ただし、使用する構文は、使用可能な HTML DOM 走査の種類によって異なります。

于 2012-08-16T02:42:17.037 に答える
0

id要素はオプションです。ページ上のすべての要素に 1 つあるわけではありません。このテーブルにはありません。

于 2012-08-16T02:42:30.437 に答える
0

そのテーブルには ID がありません。クラス「wikitable」を持つテーブルのコンテンツを取得したい場合。このコードでJsoupを使用します

package com.main;

import java.io.IOException;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;

public class Main {
    public static void main (String args[]){
        Document doc;
        try {

            doc = Jsoup.connect("http://en.wikipedia.org/wiki/States_and_territories_of_India").get();
            Elements newsHeadlines = doc.select("table.wikitable").get(0).select("td:eq(0) a");

            System.out.println(newsHeadlines.html());
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }
}
于 2012-08-16T02:51:30.733 に答える