|
@@ -151,10 +151,15 @@ class DetailSpider(feapder.AirSpider):
|
|
|
if not upper_limit:
|
|
|
# 情况2.1:结构化数据,直接提取数据
|
|
|
resp_json = response.json
|
|
|
- data_lst = resp_json['object'][business_keyword]
|
|
|
- if isinstance(data_lst, list) and len(data_lst) == 0:
|
|
|
- # 无详情数据不指定分类的名称,防止js拼接找不到分类名称而引发TypeError错误
|
|
|
- business_keyword = ''
|
|
|
+ try:
|
|
|
+ data_lst = resp_json['object'][business_keyword]
|
|
|
+ if isinstance(data_lst, list) and len(data_lst) == 0:
|
|
|
+ # 暂无详情的数据,调用js拼接时因json中不存在关键的分类名称而导致TypeError错误;
|
|
|
+ # 置空分类名称不影响js拼接,js脚本会自动处理内容分类
|
|
|
+ business_keyword = ''
|
|
|
+ except KeyError:
|
|
|
+ # 该项目发生变更,分类名称发生变更,不检查
|
|
|
+ pass
|
|
|
else:
|
|
|
if business_keyword == 'openBidRecord':
|
|
|
return None, DataStreamReadStatus.LOSE
|