擅长:python、mysql、java
<p>根据我的理解,您可以重写<code>__init__</code>和<code>from_crawler</code>方法,类似于:</p>
<pre><code>class cRetry(RetryMiddleware):
errorCounter = 0
def __init__(self, crawler):
super(cRetry, self).__init__(crawler.settings)
self.crawler = crawler
@classmethod
def from_crawler(cls, crawler):
return cls(crawler)
def process_response(self, request, response, spider):
# ...
</code></pre>
<p><code>__init__</code>的签名实际上似乎并不重要,<a href="http://doc.scrapy.org/en/latest/topics/extensions.html#writing-your-own-extension" rel="nofollow">entry point for the main library</a>始终是{<cd4>}。这是一个<a href="http://docs.python.org/2/library/functions.html#classmethod" rel="nofollow">class method</a>,它将类名作为第一个参数(然后使用它来调用构造函数)。在</p>