2

3つのことをしようとしています。

1 つ目は、少なくとも毎日、定義済みの一連のサイトをクロールしてアーカイブすることです。

2: このデータ (テキスト分類) に対して夜間バッチ Python スクリプトを実行します。

3: Django ベースのフロント エンドをユーザーに公開して、ユーザーがクロールされたデータを検索できるようにします。

私は Apache Nutch/Lucene で遊んでいますが、別のクローラー エンジンを使用できる場合、Django でうまく機能させるのは難しすぎるようです。

質問950790は、Django 自体でクローラーを作成できることを示唆していますが、これを行う方法がわかりません。

基本的に-Djangoでクローラーを作成するためのポインター、または私が適応できる既存のpythonクローラーはありますか? それとも、ステップ 2 で「Django に適したものにする」ことを組み込み、グルー コードを記述する必要がありますか? それとも、最後に、Django を完全に放棄する必要がありますか? フロントエンドから素早く検索できるものがどうしても必要なんですけどね。

4

3 に答える 3

3

Django プロジェクトのアプリ ディレクトリを sys.path に挿入すると、Django ORM 機能を利用する標準の Python スクリプトを作成できます。さまざまなタスクを実行するスクリプトを含む /admin/ ディレクトリがあります。各スクリプトの上部には、次のようなブロックがあります。

sys.path.insert(0,os.path.abspath('../my_django_project'))
sys.path.insert(0,os.path.abspath('../'))
sys.path.insert(0,os.path.abspath('../../'))
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'

あとは、選択したツールを使用して Web をクロールし、Django データベース API を使用してデータを保存するだけです。

于 2009-06-09T18:28:06.467 に答える
2

urllib2を使用して独自のクローラーを作成してページを取得し、Beautiful Soupを使用して HTML を解析してコンテンツを探します。

ページを読む例を次に示します。

http://docs.python.org/library/urllib2.html#examples

ページを解析する例を次に示します。

http://www.crummy.com/software/BeautifulSoup/documentation.html#HTMLの解析

于 2009-06-09T18:52:47.540 に答える
1

Django ORM を使用してクローラーを作成したくない場合 (または既にクローラーが動作している場合) は、クローラーと Django を利用したフロントエンドの間でデータベースを共有できます。

Django admin を使用して既存のデータベースを検索 (および編集) できるようにするには、Django モデルを作成する必要があります。そのための簡単な方法を次に示します。

http://docs.djangoproject.com/en/dev/howto/legacy-databases/

于 2009-06-09T18:32:19.297 に答える