阅读蜘蛛scrapy中的设置

时间:2017-07-21 06:04:08

标签: python scrapy

我写了一个小scrapy蜘蛛。以下是我的代码

class ElectronicsSpider(scrapy.Spider):
    name = "electronics"
    allowed_domains = ["www.olx.com"]
    start_urls = ['http://www.olx.com/']

    def parse(self, response):
        pass

我的问题是,我想使用设置读取名称,allowed_domains和start_urls。我怎样才能做到这一点?

我尝试导入

 from scrapy.settings import Settings

也试过这个

 def __init__(self,crawler):
        self.settings = crawler.settings

但我没有/错误。帮我看看蜘蛛中的设置吗?

3 个答案:

答案 0 :(得分:10)

from scrapy.utils.project import get_project_settings

settings=get_project_settings()
print settings.get('NAME')

使用此代码,我们可以从设置文件中读取数据......

答案 1 :(得分:3)

self.settings尚未在__init__()中启动。您可以在self.settings中检查start_requests()

def start_requests(self): 
    print self.settings

答案 2 :(得分:0)

我想如果您想访问scrapy settings.py ,那么来自@Sellamani的回答是好的。但我猜name,allowed_domains和start_urls不是settings.py中定义的变量。但是如果你想拥有相同的knd排列,那就制作你自己的配置文件, yourown.cfg

[Name]
crawler_name=electronics

[DOMAINS]
allowed_domains=http://example.com

然后在你的程序中使用ConfigParser这样的模块来访问 yourown.cfg

import ConfigParser
config = ConfigParser.ConfigParser()
config.read('yourown.cfg') # Assuming it is at the same location
name=config.getint('NAME', 'crawler_name')
allowed_domains=config.getint('DOMAINS', 'allowed_domains')