как перезаписать / использовать файлы cookie в scrapy

Я хочу удалить http://www.3andena.com/, этот веб-сайт сначала откроется на арабском языке). , и сохраняет языковые настройки в файлах cookie. Если вы попытались получить доступ к языковой версии напрямую через URL-адрес ( http://www.3andena.com/home.php?sl=en), проблема и ошибка сервера.

Итак, я хочу установить значение файла cookie «store_language» на «en», а затем начать очищать веб-сайт, используя эти значения файла cookie.

Я использую CrawlSpider с парой правил.

вот код

from scrapy.spider import BaseSpider
from scrapy.selector import HtmlXPathSelector
from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor
from scrapy import log
from bkam.items import Product
from scrapy.http import Request
import re

class AndenaSpider(CrawlSpider):
  name = "andena"
  domain_name = "3andena.com"
  start_urls = ["http://www.3andena.com/Kettles/?objects_per_page=10"]

  product_urls = []

  rules = (
     # The following rule is for pagination
     Rule(SgmlLinkExtractor(allow=(r'\?page=\d+$'),), follow=True),
     # The following rule is for produt details
     Rule(SgmlLinkExtractor(restrict_xpaths=('//div[contains(@class, "products-dialog")]//table//tr[contains(@class, "product-name-row")]/td'), unique=True), callback='parse_product', follow=True),
     )

  def start_requests(self):
    yield Request('http://3andena.com/home.php?sl=en', cookies={'store_language':'en'})

    for url in self.start_urls:
        yield Request(url, callback=self.parse_category)


  def parse_category(self, response):
    hxs = HtmlXPathSelector(response)

    self.product_urls.extend(hxs.select('//td[contains(@class, "product-cell")]/a/@href').extract())

    for product in self.product_urls:
        yield Request(product, callback=self.parse_product)  


  def parse_product(self, response):
    hxs = HtmlXPathSelector(response)
    items = []
    item = Product()

    '''
    some parsing
    '''

    items.append(item)
    return items

SPIDER = AndenaSpider()

Вот лог:

2012-05-30 19:27:13+0000 [andena] DEBUG: Redirecting (301) to  from 
2012-05-30 19:27:14+0000 [andena] DEBUG: Redirecting (302) to  from 
2012-05-30 19:27:14+0000 [andena] DEBUG: Crawled (200)  (referer: None)
2012-05-30 19:27:15+0000 [andena] DEBUG: Crawled (200)  (referer: http://www.3andena.com/Kettles/?objects_per_page=10)

14
задан Mahmoud M. Abdel-Fattah 30 May 2012 в 19:32
поделиться