我用 Scrapy 抓取了一個網(wǎng)站,它在沒有分頁的情況下運行良好。當我使用分頁時,我有一個 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條經(jīng)驗 獲得超14個贊
在從下一頁生成的請求中,您不會傳遞 meta 中的項目。如果您將最后一個請求更改為以下內容,它應該可以工作:
meta = {'item': response.meta['item']}
yield scrapy.Request(url=url_pagination, callback=self.parse, meta=meta)

白豬掌柜的
TA貢獻1893條經(jīng)驗 獲得超10個贊
這是因為您沒有在此行中發(fā)送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)
添加回答
舉報
0/150
提交
取消