こんにちは、私はアカデミック プロジェクトを行っている学生です。プロジェクトを完了するためのガイダンスが必要です。
私のプロジェクトは、3 つの異なる書店から本を検索し、3 つの店舗すべてから d 価格を提供する grails フレームワークに基づいています。ユーザーが必要な本を入力したら、それらの書店を検索する方法。
前もって感謝します
こんにちは、私はアカデミック プロジェクトを行っている学生です。プロジェクトを完了するためのガイダンスが必要です。
私のプロジェクトは、3 つの異なる書店から本を検索し、3 つの店舗すべてから d 価格を提供する grails フレームワークに基づいています。ユーザーが必要な本を入力したら、それらの書店を検索する方法。
前もって感謝します
詳細を提供する必要があります。書店を検索するとは、データベースで検索するということですか、それとも Amazon などのようなものですか。
これらのオンライン書店に API があるかどうかを調べます。または、選択肢がある場合は、検索に使用できる API があるオンライン書店を選択してください。たとえば、Amazon には、カタログの検索に使用できる「Product Advertising API」があります ( http://docs.amazonwebservices.com/AWSECommerceService/latest/DGを参照)。通常、これらの種類のものにアクセスするには、アフィリエイトとして登録する必要があります。
API 経由でアクセスできるオンライン書店がいくつかあれば、それらを呼び出して結果を調整する grails コードを作成するのは比較的簡単です。API は通常、REST または SOAP のいずれかの Web リクエストの形式を取ります (たとえば、Amazon - AnatomyOfaRESTRequestを参照してください)。単純な REST を使用できる場合は、Groovy の HTTPBuilder を使用して書店の API Web サービスを呼び出して使用できます。または、いくつかの Grails プラグイン ( REST Client builderなど) があると思います。SOAP の場合は、Grails CXF Client Grails プラグインを検討してください。
API の検索を 1 つずつ実行することもできますが、さらに高度にしたい場合は、新しいサーブレット 3.0 非同期機能を使用して、3 つの API すべてを同時に非同期で呼び出してみることもできます (Grails 2.0.x からの使用方法を参照してください)。 : Grails Web Features - 「Servlet 3.0 Async Features」までスクロールします)。おそらくDB経由でこれを調整する必要があり、おそらく結果ページでAJAXを介してポーリングして、結果がいつ来るかを確認する必要があります.
したがって、シーケンスは次のようになります。
書店に API がない場合は、書店の Web サイトから直接結果を「Web スクレイピング」することを検討する必要があるかもしれません。Web ページは明らかに頻繁に変更されるため、これは少し難しく、非常に脆い場合があります。Geb ( http://www.gebish.org/ ) を使用してブラウジングを自動化し、必要なものを選択するための単純な文字列マッチングを行いました。また、スクレイピングが特に許可されていない場合もあるため、関連する Web サイトの利用規約を確認することを忘れないでください。
また、上記は、この種のことを達成するためのサーバー指向の方法であることに注意してください。AJAX を使用して Web サービスを呼び出し、JavaScript を介して処理することで、純粋にクライアント (ブラウザー) で実行できます。しかし、私はサーバーマンです:)