为了账号安全,请及时绑定邮箱和手机立即绑定

Scrapy中分页的KeyError

Scrapy中分页的KeyError

天涯尽头无女友 2022-05-24 15:41:13
我用 Scrapy 抓取了一个网站,它在没有分页的情况下运行良好。当我使用分页时,我有一个 KeyError。抓取代码:class AnnonceSpider(scrapy.Spider):    name = 'rzc_results'    def __init__(self, *args, **kwargs):        data_file = pkgutil.get_data(            "rzc_spider", "json/input/complete_rzc_scrape_rectif.json")        self.data = json.loads(data_file)    def start_requests(self):        for item in self.data:            request = scrapy.Request(item['rzc_url'], callback=self.parse)            request.meta['item'] = item            yield request    def parse(self, response):        item = response.meta['item']        item['results'] = []        for caritem in response.css("div.adCardOuter_d2sn17 > div[itemprop='item']"):            data = AnnonceItem()            #model            data["model"] = []            data["model"] = caritem.css("h2.title_16j3u81 > div::text").extract_first()            if len(data["model"]) == 0:                data["model"] = None            item['results'].append(data)        yield item        next_page = response.css(            'a.link_huvdae-o_O-linkPrevNext_1v3fox8::attr(href)').extract_first()         if next_page is not None:            url_pagination = 'https://www.url.com' + next_page            yield scrapy.Request(url=url_pagination, callback=self.parse)错误信息:File "/home/bolgi/anaconda3/envs/spiders/rzc_spider/rzc_spider/spiders/rzc_item.py", line 26, in parseitem = response.meta['item']KeyError: 'item'有什么问题,我该如何解决这个问题?
查看完整描述

2 回答

?
翻翻过去那场雪

TA贡献2065条经验 获得超13个赞

在从下一页生成的请求中,您不会传递 meta 中的项目。如果您将最后一个请求更改为以下内容,它应该可以工作:


meta = {'item': response.meta['item']}

yield scrapy.Request(url=url_pagination, callback=self.parse, meta=meta)


查看完整回答
反对 回复 2022-05-24
?
白猪掌柜的

TA贡献1893条经验 获得超10个赞

这是因为您没有在此行中发送item密钥meta


if next_page is not None:

    url_pagination = 'https://www.url.com' + next_page

    yield scrapy.Request(url=url_pagination, callback=self.parse)


查看完整回答
反对 回复 2022-05-24
  • 2 回答
  • 0 关注
  • 407 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信