Scrapy 返回 ValueError SelectorList 不受支持

时间:2021-03-18 23:19:41

标签: python web-scraping xpath scrapy

我认为问题是当我尝试在循环中输入带有 response.follow 的每个 url 拼写时,但不知道为什么,它完美地将大约 500 个链接传递给了 extract_xpath 但只返回 ValueError SelectorList 不受支持

    def spell_parse(self, response):

        def extract_xpath(self, query):
            return response.xpath(query).get(Default = '')

    def parse(self, response):

        def extract_xpath(self, query):
            return response.xpath(query).get()

        for spell in response.xpath('//tr'):

            spell_def = spell.xpath('./td/a/@href')
            yield response.follow(spell_def, callback = self.spell_parse)

            yield {

                'Spell name': spell.xpath('./td[1]//text()').extract(),
                'School': spell.xpath('./td[2]//text()').extract(),
                'Casting time': spell.xpath('./td[3]//text()').extract(),
                'Range': spell.xpath('./td[4]//text()').extract(),
                'Duration': spell.xpath('./td[5]//text()').extract(),
                'Components': spell.xpath('./td[6]//text()').extract(),
                'Definition': extract_xpath('/p[4]//text()').extract(),
                'Levels': extract_xpath('/p[5]//text()').extract(),
            }

0 个答案:

没有答案