ウィキペディア統合の問題-これを最終的に整理する必要があります101

StackOverflow https://stackoverflow.com/questions/1001156

質問

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

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

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

  1. 最初のタブには、北京の都市情報を含む情報ボックスがあります
  2. Seondは、中国からの国情報の情報ボックスを保持する国タブです
  3. 3番目のタブには、北京のすべての連絡先のリストがあります。

最初の2つのタブのコンテンツはWikipediaから取得する必要がありますが、これを実現するための最良の方法が何であるかが完全に失われ、さらに方法論を決定したら-どうすればそれを実行してそのようにできますかそれは非常に堅牢です。

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

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

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

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

国のタイトル| Infobox Rawテキスト

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

pインフォボックスをダウンロードしましたが、完全ではないかもしれません。

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

役に立ちましたか?

解決

以下を提案します

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

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

他のヒント

考えられるいくつかのこと:

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

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

HTMLを実際に解析して、必要な部分を抜き取ろうとするのは大きな苦痛であり、ほとんどの場合、都市ごとにカスタマイズする必要があります。今は何か簡単な作業をしてから、本当に必要な場合は後で戻って改善することをお勧めします。

ウィキペディアジオコーディングウェブサービス

渡すことができる場所はいくつかあります。郵便番号と国を短い記事の要約とウィキペディアの記事へのリンクに追加します。

それで十分なら。

DBPediaをご覧ください。CSV形式でのWikipediaデータの優れた抽出が含まれています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top