2013-03-07 12 views
0

Shodan API를 검색하고 ID, CVE 및 설명을 반환하는 Python 스크립트를 작성하려고합니다. 일부 검색 결과 (예 : 'java')에 설정된 CVE (또는 CVE 키)가 없으므로 스크립트가 중단됩니다. 나는 try/except 오류 처리를 제외하고 검색을 감쌀 필요가 있음을 알고 있지만, 웹을 조사 할 수 있었던 것에는 어떤 행운이 없었습니다. 다음은 내가 얻는 오류이며 그 아래 코드입니다. 미리 감사드립니다.Shodan API를 검색 할 때 오류 처리

-------- 오류 -------

print '%s: %s: %s' % (exploit['id'], exploit['cve'], exploit['description']) 
KeyError: 'cve 

-------- 내 코드 ------

from shodan import WebAPI 
api = WebAPI("my shodan key") 

user_selection = raw_input("Enter something: ") 
print "searching for", (user_selection),"....." 

results = api.exploitdb.search(user_selection) 

for exploit in results['matches']: 
    print '%s: %s: %s' % (exploit['id'], exploit['cve'], exploit['description']) 

답변

0

dict.get을 사용하고 키가없는 경우 반환 할 기본값을 제공하려는 것 같습니다.

print '%s: %s: %s' % (exploit.get('id', '[blank]'), exploit.get('cve', '[blank]'), exploit.get('description', '[blank]'))