Le code suivantPourquoi scrapy lance-t-il une erreur pour moi lorsque j'essaie d'explorer et d'analyser un site?
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
Lancers l'erreur suivante
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:
Quand je change la fonction de rappel pour « analyser » et la fonction « analyser » je ne reçois pas d'erreurs, mais rien est gratté. Je l'ai changé en "parse_items" en pensant que je pourrais remplacer le parse method by accident. Peut-être que je suis en train de configurer l'extracteur de lien?
Ce que je veux faire est d'analyser chaque lien ITEM sur la page CATEGORY. Est-ce que je fais cela totalement faux?
également: voir http://stackoverflow.com/questions/1811132/scrapy-sgmllinkextractor-is-ignoring-allowed-links – bdd