如何使用Scrapy在循环中刮取相同的URL

时间:2011-06-22 21:29:08

标签: python scrapy

所需内容与静态网址位于同一网页上。

我创建了一个抓取此页面并以CSV格式存储项目的蜘蛛。但它只执行一次然后完成爬行过程。但我需要不断重复操作。我怎么能这样做?

Scrapy 0.12

Python 2.5

3 个答案:

答案 0 :(得分: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)

答案 1 :(得分:3)

你缺少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)

答案 2 :(得分: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)