首页 > 解决方案 > builtins.TypeError: __init__() 有一个意外的关键字参数“设置”

问题描述

当我运行使用 scrapy 框架的爬虫时,出现错误:

Unhandled error in Deferred:

Traceback (most recent call last):
  File "\python\lib\site-packages\scrapy\crawler.py", line 192, in crawl
    return self._crawl(crawler, *args, **kwargs)
  File "\python\lib\site-packages\scrapy\crawler.py", line 196, in _crawl
    d = crawler.crawl(*args, **kwargs)
  File "\python\lib\site-packages\twisted\internet\defer.py", line 1656, in unwindGenerator    
    return _cancellableInlineCallbacks(gen)
  File "\python\lib\site-packages\twisted\internet\defer.py", line 1571, in _cancellableInlineCallbacks
    _inlineCallbacks(None, g, status)
--- <exception caught here> ---
  File "\python\lib\site-packages\twisted\internet\defer.py", line 1445, in _inlineCallbacks   
    result = current_context.run(g.send, result)
  File "\python\lib\site-packages\scrapy\crawler.py", line 87, in crawl
    self.engine = self._create_engine()
  File "\python\lib\site-packages\scrapy\crawler.py", line 101, in _create_engine
    return ExecutionEngine(self, lambda _: self.stop())
  File "\python\lib\site-packages\scrapy\core\engine.py", line 70, in __init__
    self.scraper = Scraper(crawler)
  File "\python\lib\site-packages\scrapy\core\scraper.py", line 71, in __init__
    self.itemproc = itemproc_cls.from_crawler(crawler)
  File "\python\lib\site-packages\scrapy\middleware.py", line 53, in from_crawler
    return cls.from_settings(crawler.settings, crawler)
  File "\python\lib\site-packages\scrapy\middleware.py", line 35, in from_settings
    mw = create_instance(mwcls, settings, crawler)
  File "\python\lib\site-packages\scrapy\utils\misc.py", line 166, in create_instance
    instance = objcls.from_crawler(crawler, *args, **kwargs)
  File "\python\lib\site-packages\scrapy\pipelines\media.py", line 76, in from_crawler
    pipe = cls.from_settings(crawler.settings)
  File "\python\lib\site-packages\scrapy\pipelines\files.py", line 368, in from_settings       
    return cls(store_uri, settings=settings)
builtins.TypeError: __init__() got an unexpected keyword argument 'settings'

settings仅用于scrapy.cfg. 我不知道问题出在哪里。这里是scrapy.cfg

[settings]
default = scrapy_name.settings

[deploy]
#url = http://localhost:6800/
project = scrapy_name

这是我的文件结构。

└── my project
└── scrapy_name
├── data
├── spider
| ├── _init_.py
| └── my_spider.py
├── _init_.py
├── items.py
├── middlewares.py
├── pipelines.py
└── settings.py

[重现步骤]

1.run scrapy crawl my_spider -s JOBDIR=crawls/my_spider-1通过 setup.py。或者scrapy crawl my_spider通过cmd运行。

2.浏览器窗口出现。但它只显示为“新标签页”。

3.得到错误。

[版本]

Scrapy 2.5.0 - 没有活动项目

[附加上下文]

我使用 selenium.webdriver 加载页面,我不知道这是否与错误有关。我更新了扭曲并安装了 splite3。

标签: pythonscrapy

解决方案


推荐阅读