0

jQueryを使用してデータベースからテーブルを生成するWebサイトのデータを解析する必要がありますが、他の方法(プレーンhtml、xmlなど)にデータを提供したくありません。私の以前の経験では、データはhtmlファイル自体の中にあるため、htmlファイルから直接データを簡単に解析できますが、この場合、テーブルはブラウザーのメモリに生成されているようで、htmlから解析しようとすると、私が得る唯一のものは javascript(jquery) 自体であり、 < TABLE> < TD> または < TR> タグの内部はありません。

問題は、これらのテーブルをプレーンな HTML で取得する方法はありますか? (解決策は Android/Java にあると期待していますが、他の言語/プラットフォームも大歓迎です)

編集: データの例を見たい人のために、実際のデータを与えることはできませんが、次の例は解析する必要があるデータの正確な例です:

http://datatables.net/examples/data_sources/server_side.html

テーブルはありますが、HTMLのソースを開くと、データが見つかりません.htmlがロードされた後、ブラウザのメモリ内で何らかの形で生成され、サーバーから取得されます

Saranya Sadhasivam のリクエストにより、以下はデータ出力の例です。

aaData: [[916, 遅く, 14:38, 成功, null], [532, 早い, 14:42, 成功, null],…]

iTotalDisplayRecords: 15

iTotalRecords: 15

oa00f43afb3246649816c727d67db0df9476346d5:"QBUSRAQOQQEWVw8SWlIEURZNRVwMTkEUSBUQCxAGXB9EV04SQVsYSF9AChBaUxFbH3NhK0oDBVQDXgZ‌ WWgUGOjljNWY0NGVj"

エコー: 1

報奨金の条件:

サーバー側のデータにアクセスせずに、次のリンクからテーブル データを解析できる最初の人:

http://datatables.net/examples/data_sources/server_side.html

Android のみ

4

4 に答える 4

0

例のように、データが jQuery DataTables オブジェクトにある場合は、$("#example").DataTable().fnGetData(). 上記で指摘したように、データは動的に生成されるため、ソースコードでは HTML として表示されません。ソース コードに何らかの形式のデータが存在する可能性があります。おそらく非表示の入力に JSON が存在するか、外部ファイルに存在するか、AJAX を介してフェッチされている可能性がありますが、DataTables によって解析された後にアクセスしても問題はありません。 .

明らかに、最初の用語でセレクターとして DataTable インスタンスの id を使用する必要があります。上記の例の行を実行すると、次の形式でデータが返されます。

[["Gecko", "Firefox 1.0", "Win 98+ / OSX.2+", 2 more...], ["Gecko", "Firefox 1.5", "Win 98+ / OSX.2+", 2 more...], ["Gecko", "Firefox 2.0", "Win 98+ / OSX.2+", 2 more...], ["Gecko", "Firefox 3.0", "Win 2k+ / OSX.3+", 2 more...], ["Gecko", "Camino 1.0", "OSX.2+", 2 more...], ["Gecko", "Camino 1.5", "OSX.3+", 2 more...], ["Gecko", "Netscape 7.2", "Win 95+ / Mac OS 8.6-9.2", 2 more...], ["Gecko", "Netscape Browser 8", "Win 98SE+", 2 more...], ["Gecko", "Netscape Navigator 9", "Win 98+ / OSX.2+", 2 more...], ["Gecko", "Mozilla 1.0", "Win 95+ / OSX.1+", 2 more...]]

データが AJAX 経由で取得され、ページ分割されている場合、この方法はもはや理想的ではありません。しかし、あなたが示唆しているように、フロントエンドのみのソリューションが本当に必要な場合でも、この一般的な方法をいくつかひねりを加えて使用できます。

于 2013-09-05T13:55:59.940 に答える
-1

調査と疑問の末、私は自分が欲しいものを見つけるための正しい「Google キーワード」を見つけました。私は方法を見つけたと思います。キーワードは「GUI レス ブラウザー」または「ヘッドレス ブラウザー」であり、まさに私が必要としているものです。サーバー側のデータ、json、および応答について考える必要はありません。「ブラウザーがそれを読み込んで実行できる場合」だけです。その中にテーブルが表示され、そこからテーブルをスクラップすることができます。」いくつかの例(理想的ではない)の例は、このリンクからのものです

ヘッドレス ブラウザを使用した Android Web スクレイピング

回答を更新し、それが機能するかどうか、どの方法を使用するかを確認します

于 2013-09-03T23:54:15.047 に答える