Comment envoyer un cookie avec scrapy CrawlSpider demandes?

Je suis en train de créer ce Reddit scrapper à l'aide de Python Scrapy cadre.

J'ai utilisé le CrawSpider à ramper à travers Reddit et ses subreddits. Mais, quand je viens à travers les pages qui ont des contenus pour adultes, le site demande un cookie over18=1.

Donc, j'ai essayé d'envoyer un cookie avec toutes les demandes que l'araignée fait, mais sa ne fonctionne pas.

Ici, c'est mon araignée code. Comme vous pouvez le voir j'ai essayé d'ajouter un cookie avec tous les spider demande l'aide de la start_requests() méthode.

Quelqu'un ici pourrait me dire comment faire cela? Ou ce que j'ai fais de mal?

from scrapy import Spider
from scrapy.spiders import CrawlSpider, Rule
from scrapy.linkextractors import LinkExtractor
from reddit.items import RedditItem
from scrapy.http import Request, FormRequest

class MySpider(CrawlSpider):
    name = 'redditscraper'
    allowed_domains = ['reddit.com', 'imgur.com']
    start_urls = ['https://www.reddit.com/r/nsfw']

    rules = (
        Rule(LinkExtractor(
            allow=['/r/nsfw/\?count=\d*&after=\w*']),
            callback='parse_item',
            follow=True),
    )

    def start_requests(self):
        for i,url in enumerate(self.start_urls):
            print(url)
            yield Request(url,cookies={'over18':'1'},callback=self.parse_item)

    def parse_item(self, response):
        titleList = response.css('a.title')

        for title in titleList:
            item = RedditItem()
            item['url'] = title.xpath('@href').extract()
            item['title'] = title.xpath('text()').extract()
            yield item
Est le cookie dans request.cookies?
Aucun son n'est pas, je suppose. J'ai spécifié le cookie dans Request(url,cookies={'over18':'1'},callback=self.parse_item)

OriginalL'auteur Parthapratim Neog | 2015-09-17