6

ストアのように機能する Django アプリを構築しようとしています。アイテムはインターネットからスクレイピングされ、Django プロジェクト データベースを継続的に更新します (たとえば、数日ごと)。私は Scrapy フレームワークを使用してスクレイピングを実行していますが、実験的なDjangoItem 機能がありますが、不安定なので避けたいと思っています。

現在、私の計画は、クロールされたアイテムの XML ファイルを Scrapy で作成しXMLItemExporter(ドキュメントはこちら)、それらをloaddataXML フィクスチャとして Django プロジェクトに使用することです (ドキュメントはこちら)。2 つのプロセスのいずれかが失敗した場合、それらの間にファイル仲介があるため、これは問題ないようです。アプリケーション全体をモジュール化することも、悪い考えではないようです。

いくつかの懸念事項は次のとおりです。

  • これらのファイルが大きすぎて Django のloaddata.
  • データベース (この場合は MySQL) に直接エクスポートするなど、より優れた、またはより簡単な解決策があるかもしれないのに、私はこれに多くの時間を費やしています。
  • このプロセスについて誰もオンラインで書いていないようです。私の意見では、Scrapy が Django アプリにプラグインするための優れたフレームワークであることを考えると、これは奇妙です。
  • Django のドキュメントに Django フィクスチャを手動で作成するための決定的なガイドはありません。アプリ自体からのフィクスチャのダンプとリロードを対象としているようです。

実験的な DjangoItem の存在は、Scrapy + Django が十分に人気のある選択肢であり、ここで適切なソリューションが存在することを示唆しています。

この問題に関する解決策、アドバイス、または知恵をいただければ幸いです。

4

2 に答える 2

1

django-dynamic-scraper を使用して、Django モデルに簡単にアクセスできる Scrapy スクレイパーを作成および管理できます。これまでのところ、Scrapy では解決できない問題に遭遇したことはありません。

Django-dynamic-scraper ドキュメント

于 2013-01-22T23:19:36.303 に答える
1

この質問はすでに少し古いですが、現在、Django + Scrapy の適切な統合も扱っています。私のワークフローは次のとおりです。この回答 で説明されているように、Scrapy を Django 管理コマンドとしてセットアップしました。その後、Django の QuerySet メソッドを使用して、スクレイピングされた項目を Django のデータベースに保存する Scrapy パイプラインを単純に記述します。それで全部です。私は現在、データベースに SQLite を使用していますが、これは魅力的です。たぶん、これはまだ誰かにとって役に立ちます。

于 2012-08-17T20:59:52.440 に答える