2011-12-04 2 views
1

私は基本的なCrawlSpiderをscrapyで書いていますが、URLがクロールされる順番は何ですか?FIFO/LIFO?Scrollのクロールの順序

私は、クローラが開始URLページのすべてのリンクをクロールし、その後、注文と思われない他のURLに移動する必要があります。

どうすればいいですか?デフォルトでは

+0

されています:あなたは、本当のBFOの順に をクロールしたい場合は、以下の設定を設定することにより、それを行うことができますhttp://stackoverflow.com/questions/6566322/ scrapy-crawl-urls-in-order? – warvariuc

答えて

5

http://readthedocs.org/docs/scrapy/en/0.14/faq.html#does-scrapy-crawl-in-breath-first-or-depth-first-order

、Scrapyは、基本的にはDFOの順にクロールすることを意味する 、保留中の要求を格納するためLIFOキューを使用しています。ほとんどの場合、この順序はより便利です です。あなたはこのために見ていない

DEPTH_PRIORITY = 1 
SCHEDULER_DISK_QUEUE = 'scrapy.squeue.PickleFifoDiskQueue' 
SCHEDULER_MEMORY_QUEUE = 'scrapy.squeue.FifoMemoryQueue' 
+0

ありがとうございます。この設定はどこで設定しますか?クローラ・クラスまたはscrapy.cfgファイル内 – Siddharth

+0

あなたのプロジェクトモジュールの 'settings.py'ファイルに入れてください – Acorn

+0

ありがとう。出来た。同じ行で、URLに特定の正規表現が含まれていて他の正規表現は含まれていないリンクをScrapyがクロールできるようにするにはどうすればよいですか?私はまだすべてのURL(すなわち、それらをスパイダー)を通過する必要があるだろうが、URL内の特定の正規表現を含むものだけをクロールする? – Siddharth