擅长:python、mysql、java
<p>这就是我从0.24.6开始的做法:</p>
<pre><code>from scrapy.contrib.spiders import CrawlSpider, Rule
class MySpider(CrawlSpider):
...
def make_requests_from_url(self, url):
request = super(MySpider, self).make_requests_from_url(url)
request.cookies['foo'] = 'bar'
return request
</code></pre>
<p>Scrapy使用spider的<code>start_urls</code>属性中的url调用<code>make_requests_from_url</code>。上面的代码所做的是让默认实现创建请求,然后添加一个值为<code>bar</code>的<code>foo</code>cookie。(或者将cookie更改为值<code>bar</code>,如果发生这种情况,则很可能默认实现生成的请求上已经存在一个<code>foo</code>cookie。)</p>
<p>如果您想知道从<code>start_urls</code>创建的<em>而不是</em>请求会发生什么情况,让我添加Scrapy的cookie中间件将记住上面代码设置的cookie,并将其设置在与您显式添加cookie的请求共享同一域的所有未来请求上。</p>