17

イントラネットのWebページから情報を取得し、そこから特定の情報を見やすい形式で表示するアプリを作成するように依頼されました。Webページは非常に混乱しており、ユーザーは半ダースのアイコンをクリックして、注文したアイテムが到着したか、受け取ったかを確認する必要があります。ご想像のとおり、ユーザーは控えめに言ってもこれを苛立たせます。注文の状態を1つの画面に一覧表示するアプリを誰でも使用できると便利です。

はい、私はより良い解決策がWebアプリを書き直すことであることを知っていますが、それはベンダーに電話することを含み、私たちに少額の費用がかかります。

とにかく、これを調べていると、私がスクレイプしたいWebページはほとんどJavascriptであることがわかりました(ただし、AJAX技術は使用していません)。私がJavascriptでフィードでき、アプリが解析するためにDOMを吐き出すライブラリまたはプログラムが存在するかどうか誰かが知っていますか?

私はほとんどどの言語でもアプリを書くことができますが、私の好みはJavaFXで、それで遊ぶことができます。

御時間ありがとうございます。

イアン

4

7 に答える 7

8

HTMLunitの使用を検討してください。 これは、ブラウザを制御せずにブラウジングを自動化するために作成されたJavaクラスライブラリであり、Mozilla Rhino Javascriptエンジンを統合して、ロードするページのjavascriptを処理します。そのためのJRubyラッパーであるCelerityもあります。そのjavascriptのサポートは、現時点では完全ではありませんが、ページで多くのハックを使用しない場合は、正常に機能するはずです。パフォーマンスは、ブラウザーを制御するよりもはるかに優れているはずです。さらに、スクレイピングが終了した後もCookieが保持されることや、ブラウザーの制御に関連する他のすべての厄介なこと(履歴、オートコンプリート、一時ファイルなど)について心配する必要はありません。

于 2009-05-13T12:15:22.160 に答える
5

AJAXは使用されていないと言うので、すべての情報はHTMLソースに存在します。javascriptは、ユーザーのクリックに基づいてレンダリングするだけです。したがって、アプリケーションの動作方法をリバースエンジニアリングし、htmlとjavascriptコードを解析して、有用な情報を抽出する必要があります。これは厳密にはテキスト解析のビジネスです。JavaScriptの実行と新しいDOMの作成を扱うべきではありません。これを行うのははるかに難しいでしょう。

AJAXを使用すると、作業が簡単になります。AJAXサービスがどのように機能するか(おそらくJSONとXMLを受信することによって)を簡単に見つけて、情報を抽出することができます。

于 2009-05-13T12:26:20.037 に答える
4

あなたはグリースモンキーJSの使用を検討することができます。グリースモンキーは非常に強力なFirefoxアドオンであり、特定のWebサイトのスクリプトと一緒に独自のスクリプトを実行できます。これにより、Webサイトの表示方法を変更したり、コンテンツを追加または削除したりできます。これを使用して、AJAXスタイルのルックアップを実行したり、動的コンテンツを追加したりすることもできます。

ツールが社内で使用するためのものであり、ユーザー全員がFirefoxを喜んで使用している場合は、これが勝者となる可能性があります。

よろしく

于 2009-05-13T12:57:12.903 に答える
2

IRobotSoftWebスクレイパーをお勧めします。これは、最高のjavascriptサポートを備えた画面スクレイピング専用の無料ソフトウェアです。ビジュアルインターフェイスを使用してロボットを作成およびテストできます。ActiveXコントロールを使用して独自のアプリケーションに埋め込み、ブラウザウィンドウを非表示にすることもできます。

于 2010-05-17T16:09:34.510 に答える
1

InternetExplorerを自動化できるPerlのWin32::IE::Mechanizeを使用します。すべてのJSを処理するという面倒なタスクをMSIEに実行させながら、アイコンをクリックしてテキストを抽出できるはずです。

于 2009-05-13T12:10:12.200 に答える
1

kgiannakakisの答えに同意します。javascriptをリバースエンジニアリングして情報の出所を特定し、 Urllib2Beautiful Soupライブラリを使用して同じ情報を取得する簡単なPythonスクリプトを作成できなかったとしたら、私は驚きます。

Pythonとスクレイピングが新しいアイデアである場合は、始める方法についていくつかの優れたチュートリアルを利用できます。

[編集] Pythonバージョンのmechanizeもあるようです。しばらく前に開発したスクレーパーを書き直す時が来ました!:-)

于 2009-05-13T12:56:23.187 に答える
1

phantomJsを使用してJSのものを含むレンダリングを行い、wgetをスクレイプするプロジェクトsite2archiveを作成しました。phantomJsはWebkitに基づいており、SafariやGoogleChromeと同様のブラウジング環境を提供します。

于 2015-02-20T16:28:50.230 に答える