と呼ばれる Django モデルに URL を配置するプロジェクトに取り組んでいUrlItems
ます。含まれている models.py ファイルUrlItems
はhome
アプリ内にあります。scrapy startproject scraper
models.py ファイルと同じディレクトリに入力しました。私の Django プロジェクト構造をよりよく理解するには、この画像を参照してください。
スクレーパーから新しい ものを作成する方法は理解していますが、スパイダーの関数内にある Django プロジェクトの既存UrlItems
のものを取得して反復処理することが私の目標である場合はどうなりますか? UrlItems
def start_requests(self)
私が試したこと:
1)この質問でマークされた解決策に従って、作成したものがDjangoItem
すでにUrlItem
ロードされているかどうかを確認しました。UrlItemDjangoItem.objects.all()
スパイダーの関数で使用しようとしましたが、この方法start_requests
では Django プロジェクトの を取得できないことに気付きましたUrlItem
。
2) スパイダーで、UrlItem
このように sをインポートしようとしたところ、from ...models import UrlItem
このエラーが発生しましValueError: attempted relative import beyond top-level package
た。
アップデート
いくつかの検討の後、JSON で既存の Django オブジェクトのリストを受け取るために、Scrapy スパイダーが Django アプリケーションの API にクエリを実行することになるかもしれません。