1

と呼ばれる Django モデルに URL を配置するプロジェクトに取り組んでいUrlItemsます。含まれている models.py ファイルUrlItemshomeアプリ内にあります。scrapy startproject scrapermodels.py ファイルと同じディレクトリに入力しました。私の Django プロジェクト構造をよりよく理解するには、この画像を参照してください。

スクレーパーから新しい ものを作成する方法は理解していますが、スパイダーの関数内にある Django プロジェクトの既存UrlItemsのものを取得して反復処理することが私の目標である場合はどうなりますか? UrlItemsdef 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 にクエリを実行することになるかもしれません。

4

0 に答える 0