title: scrapy passing custom_settings to spider from script using CrawlerProcess.crawl()
body: <p>I am trying to programatically call a spider through a script. I an unable to override the settings through the constructor using CrawlerProcess. Let me illustrate this with the default spider for scraping quotes from the official scrapy site (last code snippet at <a href="https://doc.scrapy.org/en/latest/intro/tutorial.html" rel="noreferrer">official scrapy quotes example spider</a>).</p>
  
  <pre><code>class QuotesSpider(Spider):
  
      name = "quotes"
  
      def __init__(self, somestring, *args, **kwargs):
          super(QuotesSpider, self).__init__(*args, **kwargs)
          self.somestring = somestring
          self.custom_settings = kwargs
  
  
      def start_requests(self):
          urls = [
              'http://quotes.toscrape.com/page/1/',
              'http://quotes.toscrape.com/page/2/',
          ]
          for url in urls:
              yield Request(url=url, callback=self.parse)
  
      def parse(self, response):
          for quote in response.css('div.quote'):
              yield {
                  'text': quote.css('span.text::text').extract_first(),
                  'author': quote.css('small.author::text').extract_first(),
                  'tags': quote.css('div.tags a.tag::text').extract(),
              }
  </code></pre>
  
  <p>Here is the script through which I try to run the quotes spider</p>
  
  <pre><code>from scrapy.crawler import CrawlerProcess
  from scrapy.utils.project import get_project_settings
  from scrapy.settings import Settings
  
      def main():
  
      proc = CrawlerProcess(get_project_settings())
  
      custom_settings_spider = \
      {
          'FEED_URI': 'quotes.csv',
          'LOG_FILE': 'quotes.log'
      }
      proc.crawl('quotes', 'dummyinput', **custom_settings_spider)
      proc.start()
  </code></pre>