9

PythonモジュールからScrapyでクローラーを起動したいと思います。私は本質的にの本質を模倣したい$ scrapy crawl my_crawler -a some_arg=value -L DEBUG

私は次のものを用意しています:

  • プロジェクトのsettings.pyファイル
  • アイテムとパイプライン
  • BaseSpiderを拡張し、初期化時に引数を必要とするクローラークラス。

上記のコマンドを使用してプロジェクトを非常にうまく実行できますが、scrapy統合テストを作成しているので、プログラムで次のことを行います。

  • settings.pyの設定とname属性を持つクローラーを使用してクロールを起動しmy_crawlerます(このクラスはテストモジュールから簡単にインスタンス化できます。
  • の仕様に従って、すべてのパイプラインとミドルウェアを使用したいと思いますsettings.py
  • クローラーが終了するまでプロセスがブロックされることを非常に嬉しく思います。パイプラインはDBに物をダンプします。これは、テストを満たすためにクロールが完了した後に検査するDBの内容です。

だから、誰かが私を助けることができますか?ネット上でいくつかの例を見たことがありますが、それらは複数のスパイダーのハックであるか、Twisted's自然をブロックすることを回避するか、Scrapy0.14以降では機能しません。本当にシンプルなものが必要です。:-)

4

2 に答える 2