2011-06-22 11 views
2

必要なコンテンツは、静的URLを持つ同じページにあります。同じURLをScrapでループ内で掻き取る方法

このページをスクラップしてアイテムをCSVに保存するスパイダーを作成しました。しかし、これは一度だけ行い、クロールプロセスを終了します。しかし、私は継続的に操作を繰り返す必要があります。これどうやってするの?

Scrapy 0.12

のPython 2.5

答えて

6

さて、あなたに具体的な例を挙げて、私はあなたが使用して、それの内部動作しているものクモ分かりませんが、このようなものができたので、一種のタフです作業。

from scrapy.http import Request 

class YourSpider(BaseSpider): 
    # ...spider init details... 
    def parse(self, response): 
     # ...process item... 
     yield item   
     yield Request(response.url, callback=self.parse) 
+1

動作しませんでした。 1回の反復後に終了します。 –

+3

Thanx!今はうまくいく。 Request()に 'dont_filter = True'を追加する必要がありました。 –

+0

2回目のリクエストでdont_filter = Trueを追加する必要があります。 – user2989777

1

dont_filter = Trueがありません。 以下は例です。

import scrapy 

class MySpider(BaseSpider): 
    start_urls = ('http://www.test.com',)  

    def parse(self, response): 
     ### Do you processing here 
     yield scrapy.Request(response.url, callback=self.parse, dont_filter=True) 
0

私はこの方法をコーディング:

def start_requests(self): 
    while True: 
     yield scrapy.Request(url, callback=self.parse, dont_filter=True) 

私は、以下の方法を試してみましたが、インターネットが不安定であるとき、それは停止し、ループを壊すだろうという問題があります。

from scrapy.http import Request 

    class YourSpider(BaseSpider): 
    # ...spider init details... 
     def parse(self, response): 
      # ...process item... 
      yield item   
      yield Request(response.url, callback=self.parse) 
関連する問題