SplashRequest 给出 - TypeError: attrs() 得到了一个意外的关键字参数 'eq'

Ank*_*kur 7 python scrapy-splash

我正在使用 ScrapingHub 的云 Splash 实例。我正在尝试使用 Scrapy-Splash 库做一个简单的请求,但我不断收到错误消息:

@attr.s(hash=False, repr=False, eq=False)
TypeError: attrs() got an unexpected keyword argument 'eq'
Run Code Online (Sandbox Code Playgroud)

任何关于为什么会出现错误的想法/线索将不胜感激。

我使用的代码如下(使用 Python 3.6 和 Scrapy v 2.1.0):

import scrapy
from scrapy_splash import SplashRequest


class MySpider(scrapy.Spider):
    start_urls = ['https://www.sportsgirl.com.au', 'http://maryons.com.au']

    def start_requests(self):
        for url in self.start_urls:
            yield SplashRequest(url, self.parse, args={'wait': 0.5})

    def parse(self, response):    
        print(response)


MySpider().start_requests()
Run Code Online (Sandbox Code Playgroud)

和 settings.py 具有以下值:

DOWNLOADER_MIDDLEWARES = {
    'scrapy_splash.SplashCookiesMiddleware': 723,
    'scrapy_splash.SplashMiddleware': 725,
    'scrapy.downloadermiddlewares.httpcompression.HttpCompressionMiddleware': 810,
}

SPIDER_MIDDLEWARES = {
    'scrapy_splash.SplashDeduplicateArgsMiddleware': 100,
}

SPLASH_URL = 'https://my-splash-url.scrapinghub.com'
Run Code Online (Sandbox Code Playgroud)

小智 16

错误来自 Twisted 库,它是 Scrapy 的依赖项。

看起来它已在最新版本中修复。如果你跑

pip install --upgrade twisted
Run Code Online (Sandbox Code Playgroud)

你应该没事!