【问题标题】:Reading settings in spider scrapy蜘蛛scrapy中的读取设置
【发布时间】:2017-07-21 06:04:08
【问题描述】:

我写了一个小爬虫。以下是我的代码

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

但我没有/错误。帮我阅读蜘蛛的设置?

【问题讨论】:

  • 因为nameallowed_domains等不是设置,而是蜘蛛类属性。如果你需要从你的蜘蛛代码中读取设置,那么你可以只使用self.settings,因为它是由 Scrapy 为你预先填充的。
  • 你能帮我实现这个目标吗@Tomáš Linhart
  • 我认为我的评论是独立的。如果您需要明确的答案,您需要分享更多关于 从哪里 了解您需要阅读 what 的信息。

标签: python scrapy


【解决方案1】:
from scrapy.utils.project import get_project_settings

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

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

【讨论】:

    【解决方案2】:

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

    def start_requests(self): 
        print self.settings
    

    【讨论】:

      【解决方案3】:

      我认为如果你想访问scrapy settings.py,那么@Sellamani 的回答很好。但我猜 name、allowed_domains 和 start_urls 不是 settings.py 中定义的变量。但是如果你想有同样的安排,那就像这样制作你自己的配置文件,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')
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-11-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多