3

ウィキペディアの記事コレクション全体で特定の4つまたは5つの単語フレーズを見つけるプログラムを設計する必要があります(そうです、ページがたくさんあることはわかっています。これを行うためのばかと呼ぶ答えは必要ありません)。

私はこれまでこのようなものをあまりプログラムしていなかったので、2つの問題があります。

  • まず、プログラムですべてのページをクロールできるようにする方法(つまり、数百万のページのそれぞれをハードコーディングしないでください。すべての記事をハードドライブにダウンロードしましたが、どうすればよいかわかりません。プログラムにフォルダ内のそれぞれを反復処理するように指示します) 編集-ハードドライブにすべてのウィキペディアの記事があります

  • ページのスナップショットには、写真と表が含まれています。記事の本文だけを抽出するにはどうすればよいですか?

どちらの問題についてもご協力いただければ幸いです。

4

4 に答える 4

6

ページを手動でクロールすると遅くなり、ブロックされる可能性があるため、公式のデータダンプをダウンロードする必要があります。これらには画像が含まれていないため、2 番目の問題も解決されます。

編集:あなたのコンピューターにすべての記事があることがわかりましたので、この回答はあまり役に立たないかもしれません.

于 2012-04-06T04:35:12.493 に答える
0

あなたは尋ねました:

すべての記事をハード ドライブにダウンロードしましたが、フォルダ内の各記事を反復処理するようにプログラムに指示する方法がわかりません。

すべてのファイルがディレクトリ ツリー構造にあると仮定すると、os.walk( Python のドキュメントと例へのリンク) を使用してすべてのファイルにアクセスし、次のような方法で各ファイルからフレーズを検索できます。

for line in open("filename"):
    if "search_string" in line:
        print line

もちろん、このソリューションは「Python Perf」誌の表紙には載りませんが、私は Python を初めて使用するので、n00b カードを取り上げます。Python の事前に焼き付けられたモジュールを使用して、ファイル内で grep するためのより良い方法がある可能性があります。

于 2012-04-06T04:47:46.633 に答える
0

箇条書き 1: Python には、パスにあるすべてのファイルまたはディレクトリを再帰的に反復するタスク専用のモジュールがありますos.walk

ポイント2:ここで質問しているように見えるのは、画像であるファイルとテキストであるファイルを区別する方法です。magicチーズ ショップで入手できるモジュールは、同じ名前の標準 UNIX ユーティリティ (通常は として呼び出される) の Python バインディングを提供しますfile(1)

于 2012-04-06T04:42:48.840 に答える