Python 使用scrapy进行递归刮取时出现属性错误

Python 使用scrapy进行递归刮取时出现属性错误,python,web-scraping,scrapy,Python,Web Scraping,Scrapy,我有一个scrapy spider,只要我给它一个包含指向它应该刮取的页面的链接的页面,它就可以正常工作。 现在,我不想给它所有的类别,但网页包含所有类别的链接。 我想我可以简单地添加另一个解析函数来实现这一点 但是控制台输出给了我一个属性错误 attributeError:“zaubersonder”对象没有属性 “解析详细信息” 这告诉我,它工作不正常。 我不熟悉面向对象,但我认为scarpy调用的是parse,它调用的是prase_level2,wich反过来调用parse_细节,这应该可

我有一个scrapy spider,只要我给它一个包含指向它应该刮取的页面的链接的页面,它就可以正常工作。 现在,我不想给它所有的类别,但网页包含所有类别的链接。 我想我可以简单地添加另一个解析函数来实现这一点

但是控制台输出给了我一个属性错误

attributeError:“zaubersonder”对象没有属性 “解析详细信息”

这告诉我,它工作不正常。 我不熟悉面向对象,但我认为scarpy调用的是parse,它调用的是prase_level2,wich反过来调用parse_细节,这应该可以很好地工作

以下是我迄今为止的努力

import scrapy


class zaubersonder(scrapy.Spider):
    name = 'zaubersonder'
    allowed_domains = ['abc.de']
    start_urls = ['http://www.abc.de/index.php/rgergegregre.html'
                 ]




    def parse(self, response):
        urls = response.css('a.ulSubMenu::attr(href)').extract() # links to categories
        for url in urls:
            url = response.urljoin(url)
            yield scrapy.Request(url=url,callback=self.parse_level2)

    def parse_level2(self, response):
        urls2 = response.css('a.ulSubMenu::attr(href)').extract() # links to entries
        for url2 in urls2:
            url2 = response.urljoin(url2)
            yield scrapy.Request(url=url2,callback=self.parse_details)

    def parse_details(self,response): #extract entries
        yield {
            "Titel": response.css("li.active.last::text").extract(),
            "Content": response.css('div.ce_text.first.block').extract() + response.css('div.ce_text.last.block').extract(),
        }

编辑:修复了代码,以防有人搜索它

代码中有输入错误。parse_level2中的回调是self.parsedetails,但函数名为parse_details

只需将parse_level2中的收益率更改为:

…而且它应该工作得更好

yield scrapy.Request(url=url2,callback=self.parse_details)