我有乐趣scrapy,在此project,对于Facebook帖子蜘蛛工作。
我想在运行时改变CONCURRENT_REQUESTS参数settings.py中,如果提供了布尔属性
我试图覆盖from_crawler方法如下,但似乎不工作
@classmethod
def from_crawler(cls, crawler, **kwargs):
settings = cls(crawler.settings)
if 'conc' in kwargs:
settings.set('CONCURRENT_REQUESTS',32)
return settings
能否请你告诉我怎么得当,以及如何改变__init__。我应该将所有的属性在from_crawler解析?谢谢!
我刚才注意到,因为我可以只使用“-s CONCURRENT_REQUESTS = 32”在运行时。另一种选择将是覆盖update_settings方法,这里的每个人都是一个参考谁运行到这个问题:Update scrapy settings based on spider property
CONCURRENT_REQUESTS
在scrapy.core.downloader.total_concurrency设置中使用。
设置本身是不可变的。但是scrapy.core.downloader
对象是可变的。
您可以动态地改变从蜘蛛方法这个值。
class FacebookSpider(scrapy.Spider):
.......
def __init__(self, *args, **kwargs):
if 'conc' in kwargs:
self.crawler.engine.downloader.total_concurrency = 32
....