2


0

私は3つのことをやろうとしています。

1つは、少なくとも毎日、事前定義された一連のサイトをクロールおよびアーカイブすることです。

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

3つ目:Djangoベースのフロントエンドをユーザーに公開して、クロールされたデータを検索させます。

私はApache Nutch / Luceneで遊んできましたが、Djangoでうまく遊べるようにするには、他のクローラエンジンを使用することができたときには非常に困難に思えます。

質問 950790私はDjango自体でクローラを書くことができると示唆していますが、よくわかりませんこれをどうやって進めるか。

基本的に - Djangoでクローラーを書くことへのポインター、あるいは私が適応できる既存のpythonクローラーへのポインター それとも、ステップ2に「Djangoにやさしいものに変える」を組み込んで、グルーコードを書くべきですか? それとも、最後に、私はDjangoを完全に放棄するべきですか? フロントエンドから素早く検索できるものが本当に必要です。

3 Answer


3


djangoプロジェクトのappディレクトリを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'] = '設定'

それから、Webをクロールするために選択したツールを使用し、データを格納するためにDjangoデータベースAPIを使用するだけです。


2


ページを取得するには urllib2を、構文解析するにはhttp://www.crummy.com/software/BeautifulSoup/[Beautiful Soup]を使用して独自のクローラーを作成します。コンテンツを探しているHTML。

これはページを読む例です:

これは、ページを解析する例です。


1


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

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