在继续操作之前尝试验证标签/数据值是否存在,并不断获取索引错误
这是我的那行不起作用 如果len(data ['descriptive'] [0] ['partNumber'])> 0:
jvscript = soup.select_one('#skuDescriptivattribute').text
prdDts = soup.find_all('div',class_="product-details")
if len(jvscript) > 0:
data = jvscript
data = json.loads(data)
if len(data['descriptive'][0]['partNumber']) > 0:
dets['sku'] = data['descriptive'][0]['partNumber']
else:
print("SKU NOT FOUND")
elif len(prdDts) > 0:
print("Out Of Stock")
else:
print("No Sku Available")
我要检查的是该“ partnumber”标记/值是否存在。如果确实抓住了它,如果没有抓住它,那么将填充一条简单的罐头消息
运行时控制台中的错误:
if len(data['descriptive'][0]['partNumber']) > 0:
IndexError: list index out of range
如果我尝试下面的其他建议,则会收到此错误:
if 'partNumber' in data['descriptive'][0]:
IndexError: list index out of range
现在我在建议之后收到此错误,然后再次针对列表尝试
jvscript = soup.select_one('#skuDescriptivattribute').text
AttributeError: 'NoneType' object has no attribute 'text'
基本上,我想在继续之前检查页面上是否存在标签或数据。我对2655个网址运行了我的Spider,然后打开了结果文件,我发现大多数具有上述通用消息的记录都不存在,并且由于其他原因,所以这就是我尝试添加的原因上面的逻辑,以便我可以验证存在哪些标记,因此我知道如何填充值列表并进行相应的保存。.我宁可向用户提供有用的消息,然后只是“ Sku go here”的通用占位符
答案 0 :(得分:0)
您可以像这样检查字典中是否存在'partNumber':
if 'partNumber' in data['descriptive'][0]:
...
EDIT删除了不必要的.keys