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
但我没有/错误。帮我看看蜘蛛中的设置吗?
答案 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')