Django でプロジェクトを作成し、その一部で Scrapy を使いたい。そして、Scrapy プロジェクトで Django のモデルなどを参照したい。
Scrapy の準備
まずは普通に Scrapy のインストールとプロジェクトの作成をします。Django と同様に、startproject コマンドの最後にドットを入れるとカレントディレクトリーにプロジェクトファイルが作成されます。
$ pip install Scrapy
$ scrapy startproject [プロジェクト名] .
プロジェクトが作成されたら、次はスパイダーを作成します。
$ scrapy genspider [スパイダー名] [スクレイピングの対象ドメイン]
genspider コマンドを実行すると、spiders フォルダーにスパイダー名の .py ファイルが作成れるので、そのファイルにスクレイピングのコードを記述します。
Scrapy の設定
Scrapy のプロジェクトから Django のモデルを参照できるよう、Scrapy のプロジェクトの設定ファイル ([Scrapy のプロジェクト名]/settings.py) に次の行を追加します。
import os
import sys
import django
sys.path.append(os.path.dirname(os.path.abspath('.')))
os.environ['DJANGO_SETTINGS_MODULE'] = 'config.settings'
django.setup()
このように設定すると、Scrapy のプロジェクトのファイルで Django のモデルなどを参照できます。
from [Django アプリ名].models import [Django モデル]
コメントする