首页 > 解决方案 > Scrapy 错误显示当没有数据可抓取对象时

问题描述

当我运行我的 Scrapy 代码时,我不断收到错误“'NoneType' object is not subscriptable”。我知道对象值为 None,但是如何跳过它并指示 Scrapy 将此对象记录为空对象?

下面是方法

def parse_country(self, response):
    try:

        item = response.meta['item']
        link_id = response.meta['link_id']
        place_data = json.loads(response.body)
        
        place_country = place_data[0][0][0]

        item['place_country'] = place_country

        yield item
    
    except Exception as e:
        print(e)    

该错误仅在没有要抓取的数据时显示。

标签: pythonweb-scrapingscrapy

解决方案


Try/except对于捕获错误或错误很有用。我会建议一个if/else解决方案。

像这样的东西可能对你有用:

def parse_country(self, response):
    item = response.meta['item']
    link_id = response.meta['link_id']
    place_data = json.loads(response.body)                    
                 
    if place_data[0][0][0] is not None:
         place_country = place_data[0][0][0]
         item['place_country'] = place_country
    else
         item['place_country'] = 'No Country found'
    

推荐阅读