python报错traceback_运行脚本报错:Traceback (most recent call last):

本文介绍了一个使用 Python 实现的 Censys API 多线程搜索脚本,旨在批量获取 IP 地址信息。脚本通过指定关键词进行搜索,并将结果保存到文件中。文章还包含了一个错误示例,提示在运行过程中可能出现的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

运行脚本报错:

Traceback (most recent call last):

File "censys1.py", line 79, in

multipro(options.num)

File "censys1.py", line 69, in multipro

t = threading.Thread(target=censys.search())

File "censys1.py", line 46, in search

for i in result['results']:

KeyError: 'results'

求大神看看,本人是小小白一只

源代码:

# coding: utf-8

import sys

import json

import threading

import requests

from optparse import OptionParser

API_URL = "https://www.censys.io/api/v1"

UID = "d5849df5-b718-4137-9200-3c0588b070ce" #你的api uid

SECRET = "不方便透露"#你的加密串

#data = {"query":"comba",

# "page":2}

#data = {"query":"comba","page":2,"fields":["ip"]}

#try:

# res = requests.post(API_URL+'/search/ipv4',data=json.dumps(data),auth=(UID,SECRET))

# print res

#except Exception, e:

# print e

#

class Censys(object):

def __init__(self,keyword,page,file):

self.key = keyword

self.page = page

self.file=file

def search(self):

data = {"query":self.key,"page":self.page,"fields":["ip"]}

try:

res = requests.post(API_URL+'/search/ipv4',data=json.dumps(data),auth=(UID,SECRET))

except Exception,e:

print "connect error",e

result = json.loads(res.content)

for i in result['results']:

file = open(self.file,'a')

file.write(i["ip"]+'\n')

file.close()

def usage():

usage = "usage: %prog [options]"

parser = OptionParser(usage=usage)

parser.add_option("-k","--keyword",type="string",dest="key",help="keyword is necessary")

parser.add_option("-p","--page",type="int",dest="page",help="the result will view p number page default is %default",default=2)

parser.add_option("-n","--thread",type="int",dest="num",help="give n number thread,default is %default",default=1)

parser.add_option("-f","--file",type="string",dest="file",help="save file default is %default",default="result.txt")

(options,args) = parser.parse_args()

if len(sys.argv)<3:

parser.print_help()

exit()

else:

return options

def multipro(num):

for i in range(num):

t = threading.Thread(target=censys.search())

t.start()

t.join(3)

if __name__=='__main__':

#print args

options=usage()

censys=Censys(options.key,options.page,options.file)

# censys.search()

multipro(options.num)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值