0

申し訳ありませんが、ウィキペディアのデータをアプリケーションに統合する方法について質問するモックを実行していましたが、率直に言って、すべてのアイデアを試して少しあきらめていたため、成功したとは思いません行き止まりや障害物を読んだとき。ここで私がやろうとしていることを正確に説明しようとします。

都市や国などの場所の単純なディレクトリがあります。私のアプリケーションは、検索およびブラウズ機能を備えた単純な php ベースの ajax ベースのアプリケーションです。人々はサインアップして都市に関連付けられ、ユーザーが都市をブラウジングすると、その都市の人々や企業、つまり私たちのシステムの一部である人を見ることができます.

その部分は、それ自体で簡単にセットアップでき、正常に機能しています。問題は、私の検索結果が次のような形式になるということです。3 つのタブ付きのインターフェイス ボックスに戻ります。

  1. 最初のタブには、北京の都市情報を含むインフォボックスがあります
  2. Seond は、中国の国情報のインフォボックスを保持する国タブになります。
  3. 3 番目のタブには、北京のすべての連絡先のリストが表示されます。

最初の 2 つのタブのコンテンツは、Wikipedia から取得する必要があります。今、私はこれを行うための最良の方法について完全に迷っており、さらに方法論を決定したら、どのようにそれを行い、非常に屈強。

これまでに消化できた良いアイデアと悪いアイデアのいくつかは次のとおりです。

  1. curl リクエストをウィキペディアに直接実行し、検索が行われるたびに返されるデータを解析します。このウィキペディアのデータの場合、ローカル コピーを維持する必要はありません。もう 1 つの問題は、リモートの 3 番目の場所からのデータに完全に依存していることです。基本的な情報を取得するためにウィキペディアに毎回要求を行うことは現実的ではないと思います。さらに、ウィキペディアのデータはリクエストごとに解析する必要があることを考慮すると、サーバーの負荷が高くなる..または私はここで推測しています.

  2. ウィキペディアのダンプをダウンロードして、それをクエリします。データベース全体をダウンロードしましたが、xml ダンプからすべてのテーブルをインポートするには永遠に時間がかかります。さらに、国と都市とその情報ボックスのリストを抽出したいだけであるという事実を考慮してください。ダンプ内の多くの情報は役に立ちません。

  3. 独自のローカル テーブルを作成し、wikipedia のすべての国と都市のページを解析してテーブルで使用できる形式に変換する cron[ここで cron ジョブの理由を説明します] スクリプトを作成します。しかし、正直なところ、インフォボックスの基本的なマークアップをそのまま取得できれば、インフォボックスのすべての情報は必要ありません。それで十分です。お気に入り:

国名 | インフォボックス 生テキスト

必要に応じて、座標やその他の詳細などを個人的に抽出できます。

infochiumps と dbpedia からサード パーティのデータセットをダウンロードしようとしましたが、infochimps のデータセットは不完全で、表示したい情報がすべて含まれていませんでした。さらに、dbpedia では、infobox からダウンロードした csv ファイルをどうすればよいかまったくわかりません。また、完全ではない可能性もあります。

しかし、それはここでの問題のほんの一部です。ウィキペディアの情報を表示する方法が必要です - すべてのリンクがウィキペディアを指すようにし、ウィキペディアからの素敵な情報が全体に適切に表示されるようにしますが、問題は、私が持っている情報を定期的に更新できる方法が必要なことです。ウィキペディアからなので、少なくとも完全に古いデータはありません。同様に、チェックできるシステムと言ってみましょう。新しい国または新しい場所がある場合、情報を解析して何らかの方法で取得できます。ここではウィキペディアの国と都市のカテゴリに依存していますが、率直に言って、これらのアイデアはすべて紙に書かれており、部分的にコード化されており、非常に混乱しています。

私は PHP と MySQL でプログラミングを行っていますが、締め切りが迫っています。上記の状況と要件を考えると、従うべき最も実用的な方法は何でしょうか。私はアイデアを完全に受け入れています - 誰かが同様のことをした場合の実用的な例 - 聞きたいです:D

4

4 に答える 4

2

ウィキペディアジオコーディングWebサービスの1つを使用してみませんか

郵便番号や国を短い記事の要約やウィキペディアの記事へのリンクに渡すことができるいくつかの利用可能なものがあります。

それで十分なら。

于 2009-06-16T12:37:03.780 に答える
2

私が考えることができるいくつかのこと:

  1. ウィキペディアのデータをサイトのiframeに表示するだけです。

  2. Curlを使用してウィキペディアからhtmlを取得し、カスタムスタイルシートを使用してスタイルを設定したり、表示したくない部分を非表示にしたりします。

HTMLを実際に解析して必要な部分を抽出しようとすると、非常に苦痛になり、都市ごとにカスタム化する必要があります。今のところ単純なものを機能させてから、本当に必要だと判断した場合は、後で戻って改善することをお勧めします。

于 2009-06-16T12:33:08.953 に答える
1

私は次のことを提案します

  • データベースに都市が作成されたときに、ウィキペディアから都市を照会します
  • データを解析し、最終更新のタイムスタンプとともにローカル コピーを保存します
  • アクセス時に、必要に応じてデータを更新します。古いものを透かし付きで表示して、... 日前で現在更新中であることを示すことができます。その後、更新が完了したら、新しく取得したものに変更します。あなたはAJAXを使用していると述べたので、問題にはなりません

ウィキペディアへのクエリが最小限に抑えられ、ウィキペディアにアクセスできない場合でも、サービスは空のページを表示しません。

于 2009-06-16T13:44:21.523 に答える
0

DBPedia を見てください。CSV 形式のウィキペディア データの優れた抽出が含まれています。

于 2010-05-07T09:57:49.913 に答える