scrapy.spider如何从数据库中取起始URL

balasihome 发布于 2015/06/16 15:59
阅读 2K+
收藏 0
spider的内置参数里面,start_url只支持一行一行的穷举格式.

如果URL全部存储在数据库中,如何让spider从数据库中读取URL去爬行?
比如一次取50条,没了再取,类似这样。
加载中
0
万里谁能驯
万里谁能驯
没了再取怎么理解?
如果是50条start_url处理完就取,可以给第50条url一个特殊的callback,除了产生正常结果外,还去读取剩下的数据。
如果是spider空闲以后再读取,可以绑定一个信号:
from scrapy import signals, Request

#####################

self.crawler.signals.connect(self._on_idle, signals.spider_idle)

#####################

def _on_idle(self, spider):
    if spider is self:
        for url in get_some_urls():
            self.crawler.engine.schedule(Request(url), spider=self)



scrapy不会因为多读取了几条url而崩溃,一般来说不必关心这些细节。
X-devil
X-devil
老哥,可以详细说一下吗
返回顶部
顶部