El código¿Por qué scrapy arroja un error al intentar arañar y analizar un sitio?
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
siguiente tira 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()
--- <exception caught here> ---
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 devolución de llamada a "analizar" y la función de "analizar" no consigo ningún error, pero nada es raspado. Lo cambié a "parse_items" pensando que podría estar anulando el parse method by accident. Tal vez estoy configurando el extractor de enlaces mal?
Lo que quiero hacer es analizar cada enlace de ELEMENTO en la página CATEGORÍA. ¿Estoy haciendo esto totalmente mal?
también: vea http://stackoverflow.com/questions/1811132/scrapy-sgmllinkextractor-is-ignoring-allowed-links – bdd