Je travaille sur un framework scrapy.Impossible d'accéder à l'instance parent varibale dans l'enfant
J'ai quelques propriétés communes que je veux dans toutes mes araignées ainsi j'ai fait un BaseSpider.
BaseSpider
import scrapy
from src.LoggerFactory import get_logger
import ConfigParser
from redis import Redis
class BaseSpider(scrapy.Spider):
logger = get_logger()
def __init__(self, *args, **kwargs):
super(scrapy.Spider, self).__init__(*args, **kwargs)
config = ConfigParser.RawConfigParser()
config.read('../../config.cfg')
self.config = config
self.redis = Redis(host=config.get('redis', 'host'), port=config.get('redis', 'port'))
def parse(self, response):
pass
Et mon EbaySpider est la suivante
EbaySpider
import scrapy
import json
from scrapper.items import Product
from BaseSpider import BaseSpider
class EbaySpider(BaseSpider):
name = "ebay"
allowed_domains = ["ebay.com"]
def __init__(self, *args, **kwargs):
super(BaseSpider, self).__init__(*args, **kwargs)
print self.redis # Throws AttributeError: 'EbaySpider' object has no attribute 'redis'
exit()
Strangest partie est que je peux encore accéder scrapy.Spider
properts dans mon EbaySpider
bien qu'il ne soit pas hérité de scrapy.Spider
.
De plus, s'il y a un moyen peu astucieux d'étendre les araignées, suggérez-moi de ne pas trouver cela dans leurs documentations.
Merci
Oh mon mauvais! nouveau en python lol .. Merci mon frère –