必要なコンテンツは、静的URLを持つ同じページにあります。同じURLをScrapでループ内で掻き取る方法
このページをスクラップしてアイテムをCSVに保存するスパイダーを作成しました。しかし、これは一度だけ行い、クロールプロセスを終了します。しかし、私は継続的に操作を繰り返す必要があります。これどうやってするの?
Scrapy 0.12
のPython 2.5
必要なコンテンツは、静的URLを持つ同じページにあります。同じURLをScrapでループ内で掻き取る方法
このページをスクラップしてアイテムをCSVに保存するスパイダーを作成しました。しかし、これは一度だけ行い、クロールプロセスを終了します。しかし、私は継続的に操作を繰り返す必要があります。これどうやってするの?
Scrapy 0.12
のPython 2.5
さて、あなたに具体的な例を挙げて、私はあなたが使用して、それの内部動作しているものクモ分かりませんが、このようなものができたので、一種のタフです作業。
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)
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)
私はこの方法をコーディング:
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)
動作しませんでした。 1回の反復後に終了します。 –
Thanx!今はうまくいく。 Request()に 'dont_filter = True'を追加する必要がありました。 –
2回目のリクエストでdont_filter = Trueを追加する必要があります。 – user2989777