2017-07-20 19 views
1

この質問は本質的にPass scraped URL's from one spider to anotherと同じですが、私はこれを行うための 'Scrapy-native'方法がないか再度確認したいと思います。別の設定で別のスパイダーにScrapy Requestを送信する方法は?

99%の時間がJavaScriptを表示せずに正常にスクラップできるウェブページを掻いています。しかし時々、これは失敗し、特定のFieldが存在しません。私はすべての予想フィールドが移入されたかどうかをチェックitem_scraped方法でScrapy Extensionを書くのが好きそうでない場合、スプラッシュの設定(参照https://blog.scrapinghub.com/2015/03/02/handling-javascript-in-scrapy-with-splash/)を含むcustom_settingsと異なるスパイダーにSplashRequestをもたらすだろう。

外部サービス(Redisなど)を使用せずにこれを行うには、Scrapyの方法はありますか?

答えて

4

スプラッシュスプラッシュを有効にするとSplashRequestが機能し、通常のscrapy.Requestには影響しません(request.metaに「スプラッシュ」がない場合)。

スプラッシュ設定を含めることができ、引き続きscrapy.Requestを生成できます。スプラッシュなしで処理されます。

+0

https://blog.scrapinghub.com/2015/03/02/handling-javascript-in-scrapy-with-splash/「DUPEFILTER_CLASS」を「SplashAwareDupefilter」に設定することに言及していますが、これも影響します定期的な「scrapy.Request」、いいえ? –

+0

SplashAwareDupefilterは、非スプラッシュ要求の標準dupefilterと同じです。したがって、デフォルトのdupefilterを使用している場合、SplashAwareDupefilterはドロップイン置換です。ただし、デフォルト以外のデュプリケータを使用する場合は、独自のバージョンを作成する必要があります。これは、スプラッシュ要求と非スプラッシュ要求の両方で機能します。 –

関連する問題