2016-03-23 13 views
1

私はジャンゴビューからの治療クロールを開始したい(私はそれがブロックされていることを知っている、それは今のところ懸念していない、私はそのクロールの結果である治療アイテムを回復したいと思っています。djangoビューでクロールされた治療項目を取得する

私はそれらを私のデータベースに保存したくありません(それはscrapy-djangoitemのようなものです)、彼らはそこにいません。

今私はscrap.crawler.CrawlerProcessを使用してdjangoの内部からクロールを開始しています。私はシグナル(scrapy.signals.item_scrapedのようなものでしょうか?)は行こうと思っていますが、これをすべてまとめること。

答えて

1

Djangoからクロールをオフロードして、Webアプリケーションが動作している別のJSONサービスとして保持することをお勧めします。通常の呼び出しよりも最大タイムアウトが高くなる可能性があります。

あなたがこのアプローチ可能性が3つの方法があります。

  1. 使用ScrapyRTような何かをし、あなたのDjangoアプリケーションの要求あなたは上のクモサーバーを置くURLを持っているが。
  2. Djangoは、Scrapyスパイダーがデータを削除するように設定されているSQLiteデータベースにアクセスし、スパイダーをscrapydサーバーにデプロイします。
  3. ScrapinghubのScrapy Cloudでスパイダーを実行します。 #2と同じことができますが、APIのアイテムエンドポイントを呼び出すことでデータを取得することもできます。
+0

私はScrapyRT(リアルタイムで私の必要性に答えると私はjsonでアイテムを取得する)を使用して終了すると思う、アドバイスありがとう:) – CarloDePieri

関連する問題