¿Por qué Scrapy arroja un error para mí cuando bash arañar y analizar un sitio?

El siguiente codigo

class SiteSpider(BaseSpider): name = "some_site.com" allowed_domains = ["some_site.com"] start_urls = [ "some_site.com/something/another/PRODUCT-CATEGORY1_10652_-1__85667", ] rules = ( Rule(SgmlLinkExtractor(allow=('some_site.com/something/another/PRODUCT-CATEGORY_(.*)', ))), # Extract links matching 'item.php' and parse them with the spider's method parse_item Rule(SgmlLinkExtractor(allow=('some_site.com/something/another/PRODUCT-DETAIL(.*)', )), callback="parse_item"), ) def parse_item(self, response): .... parse stuff 

Lanza el siguiente error.

 Traceback (most recent call last): File "/usr/lib/python2.6/dist-packages/twisted/internet/base.py", line 1174, in mainLoop self.runUntilCurrent() File "/usr/lib/python2.6/dist-packages/twisted/internet/base.py", line 796, in runUntilCurrent call.func(*call.args, **call.kw) File "/usr/lib/python2.6/dist-packages/twisted/internet/defer.py", line 318, in callback self._startRunCallbacks(result) File "/usr/lib/python2.6/dist-packages/twisted/internet/defer.py", line 424, in _startRunCallbacks self._runCallbacks() ---  --- File "/usr/lib/python2.6/dist-packages/twisted/internet/defer.py", line 441, in _runCallbacks self.result = callback(self.result, *args, **kw) File "/usr/lib/pymodules/python2.6/scrapy/spider.py", line 62, in parse raise NotImplementedError exceptions.NotImplementedError: 

Cuando cambio la callback a “analizar” y la función a “analizar” no recibo ningún error, pero no se raspa nada. Lo cambié a “parse_items” pensando que podría estar anulando el método de análisis por accidente . Tal vez estoy configurando el extractor de enlaces mal?

Lo que quiero hacer es analizar cada enlace de ARTÍCULO en la página de CATEGORÍA. ¿Estoy haciendo esto totalmente mal?

Necesitaba cambiar BaseSpider a CrawlSpider. Gracias usuarios srapy!

http://groups.google.com/group/scrapy-users/browse_thread/thread/4adaba51f7bcd0af#

Hola Bob,

¿Quizás podría funcionar si cambias de BaseSpider a CrawlSpider? El BaseSpider parece no implementar la Regla, ver:

http://doc.scrapy.org/topics/spiders.html?highlight=rule#scrapy.contr

-METRO

De forma predeterminada, las búsquedas de scrapy para la función de análisis en la clase. Aquí en tu araña, falta la función de análisis. En lugar de analizar has dado parse_item. El problema se resolverá si parse_item se reemplaza con parse. O puede anular el método parse en spider.py con el de parse_item.