本文整理汇总了Python中classes.Registry.Registry.log方法的典型用法代码示例。如果您正苦于以下问题:Python Registry.log方法的具体用法?Python Registry.log怎么用?Python Registry.log使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类classes.Registry.Registry
的用法示例。
在下文中一共展示了Registry.log方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: CmsThread
# 需要导入模块: from classes.Registry import Registry [as 别名]
# 或者: from classes.Registry.Registry import log [as 别名]
class CmsThread(threading.Thread):
""" Thread class for CMS module """
queue = None
method = None
url = None
counter = None
last_action = 0
def __init__(self, queue, domain, url, protocol, method, not_found_re, not_found_codes, delay, counter, result):
threading.Thread.__init__(self)
self.queue = queue
self.method = method if not (len(not_found_re) and method.lower() == 'head') else 'get'
self.domain = domain
self.url = url
self.result = result
self.counter = counter
self.protocol = protocol
self.not_found_re = False if not len(not_found_re) else re.compile(not_found_re)
not_found_codes = not_found_codes.split(',')
not_found_codes.append('404')
self.not_found_codes = list(set(not_found_codes))
self.delay = int(delay)
self.done = False
self.http = Registry().get('http')
self.logger = Registry().get('logger')
def run(self):
""" Run thread """
req_func = getattr(self.http, self.method)
need_retest = False
while not self.done:
self.last_action = int(time.time())
if self.delay:
time.sleep(self.delay)
try:
if not need_retest:
path = self.queue.get()
try:
url = "{0}://{1}{2}".format(self.protocol, self.domain, clear_double_slashes(self.url + path))
except UnicodeDecodeError:
self.logger.log(
"URL build error (UnicodeDecodeError) with path '{0}', skip it".format(pprint.pformat(path)),
_print=False
)
continue
except UnicodeEncodeError:
self.logger.log(
"URL build error (UnicodeEncodeError) with path '{0}', skip it".format(pprint.pformat(path)),
_print=False
)
continue
try:
resp = req_func(url)
except ConnectionError:
need_retest = True
self.http.change_proxy()
continue
binary_content = resp is not None and is_binary_content_type(resp.headers['content-type'])
if resp is not None \
and str(resp.status_code) not in(self.not_found_codes) \
and not (not binary_content and self.not_found_re and self.not_found_re.findall(resp.content)):
self.result.append({
'path': path,
'code': resp.status_code,
})
self.logger.item(
path,
resp.content if not resp is None else "",
binary_content
)
self.counter.up()
self.queue.task_done()
need_retest = False
except Queue.Empty:
self.done = True
break
except ChunkedEncodingError as e:
self.logger.ex(e)
except UnicodeDecodeError as e:
self.logger.ex(e)
self.queue.task_done()
except BaseException as e:
try:
self.queue.put(path)
if not str(e).count('Timed out waiting for page load'):
self.logger.ex(e)
except UnicodeDecodeError:
pass
#.........这里部分代码省略.........
示例2: HostsBruteThread
# 需要导入模块: from classes.Registry import Registry [as 别名]
# 或者: from classes.Registry.Registry import log [as 别名]
class HostsBruteThread(HttpThread):
""" Thread class for HostsBrute modules """
queue = None
method = None
url = None
mask_symbol = None
counter = None
retested_words = None
last_action = 0
def __init__(
self, queue, protocol, host, template, mask_symbol,
false_phrase, retest_codes, delay, ignore_words_re, counter, result):
threading.Thread.__init__(self)
self.retested_words = {}
self.queue = queue
self.protocol = protocol.lower()
self.host = host
self.template = template
self.mask_symbol = mask_symbol
self.counter = counter
self.result = result
self.done = False
self.false_phrase = false_phrase
self.retest_codes = list(set(retest_codes.split(','))) if len(retest_codes) else []
self.delay = int(delay)
self.retest_delay = int(Registry().get('config')['hosts_brute']['retest_delay'])
self.http = copy.deepcopy(Registry().get('http'))
self.logger = Registry().get('logger')
self.method = 'get'
self.ignore_words_re = False if not len(ignore_words_re) else re.compile(ignore_words_re)
self.retest_limit = int(Registry().get('config')['hosts_brute']['retest_limit'])
def run(self):
""" Run thread """
req_func = getattr(self.http, self.method)
need_retest = False
word = False
while not self.done:
self.last_action = int(time.time())
if self.delay:
time.sleep(self.delay)
try:
if not need_retest:
word = self.queue.get()
self.counter.up()
if not len(word.strip()) or (self.ignore_words_re and self.ignore_words_re.findall(word)):
continue
try:
hostname = self.template.replace(self.mask_symbol, word)
except UnicodeDecodeError:
self.logger.log(
"URL build error (UnicodeDecodeError) with word '{0}', skip it".format(pprint.pformat(word)),
_print=False
)
continue
try:
resp = req_func(self.protocol + "://" + self.host, headers={'host': hostname})
except ConnectionError:
need_retest = True
self.http.change_proxy()
continue
if self.is_retest_need(word, resp):
time.sleep(self.retest_delay)
need_retest = True
continue
search_scope = ""
for header in resp.headers:
search_scope += "{0}: {1}\r\n".format(header.title(), resp.headers[header])
search_scope += '\r\n\r\n' + resp.text
positive_item = False
if resp is not None and not search_scope.count(self.false_phrase):
self.result.append(hostname)
positive_item = True
self.log_item(word, resp, positive_item)
self.check_positive_limit_stop(self.result)
need_retest = False
except Queue.Empty:
self.done = True
break
#.........这里部分代码省略.........
示例3: SCmsThread
# 需要导入模块: from classes.Registry import Registry [as 别名]
# 或者: from classes.Registry.Registry import log [as 别名]
class SCmsThread(SeleniumThread):
""" Thread class for CMS module (selenium) """
queue = None
method = None
url = None
counter = None
last_action = 0
def __init__(
self, queue, domain, url, protocol, method, not_found_re,
delay, ddos_phrase, ddos_human, recreate_re, counter, result
):
super(SCmsThread, self).__init__()
self.queue = queue
self.method = method if not (len(not_found_re) and method.lower() == 'head') else 'get'
self.domain = domain
self.url = url
self.result = result
self.counter = counter
self.protocol = protocol
self.not_found_re = False if not len(not_found_re) else re.compile(not_found_re)
self.done = False
self.http = Registry().get('http')
self.delay = int(delay)
self.ddos_phrase = ddos_phrase
self.ddos_human = ddos_human
self.recreate_re = False if not len(recreate_re) else re.compile(recreate_re)
self.logger = Registry().get('logger')
Registry().set('url_for_proxy_check', url)
self.browser_create()
def run(self):
""" Run thread """
need_retest = False
while not self.done:
self.last_action = int(time.time())
if self.delay:
time.sleep(self.delay)
try:
path = self.queue.get()
self.counter.up()
try:
url = "{0}://{1}{2}".format(self.protocol, self.domain, clear_double_slashes(self.url + path))
except UnicodeDecodeError:
self.logger.log(
"URL build error (UnicodeDecodeError) with path '{0}', skip it".format(pprint.pformat(path)),
_print=False
)
continue
self.browser.get(url)
if self.recreate_re and self.recreate_re.findall(self.browser.page_source):
self.queue.put(path)
self.browser_close()
self.browser_create()
continue
if not self.not_found_re.findall(self.browser.page_source):
self.result.append({
'path': path,
'code': 0,
})
self.logger.item(
path,
self.browser.page_source,
True
)
self.queue.task_done()
except Queue.Empty:
self.done = True
break
except TimeoutException as e:
self.queue.put(path)
self.browser_close()
self.browser_create()
continue
except UnicodeDecodeError as e:
self.logger.ex(e)
self.queue.task_done()
except BaseException as e:
try:
self.queue.put(path)
if len(e.args) and e.args[0] == 111:
self.browser_close()
self.browser_create()
elif not str(e).count('Timed out waiting for page load'):
self.logger.ex(e)
except UnicodeDecodeError:
pass
self.queue.task_done()
self.up_requests_count()
#.........这里部分代码省略.........
示例4: DafsThread
# 需要导入模块: from classes.Registry import Registry [as 别名]
# 或者: from classes.Registry.Registry import log [as 别名]
class DafsThread(HttpThread):
""" Thread class for Dafs modules """
queue = None
method = None
template = None
mask_symbol = None
counter = None
retested_words = None
last_action = 0
ignore_words_re = None
def __init__(
self, queue, protocol, host, template, method, mask_symbol, not_found_re,
not_found_size, not_found_codes, retest_codes, delay, ignore_words_re,
counter, result):
threading.Thread.__init__(self)
self.retested_words = {}
self.queue = queue
self.protocol = protocol.lower()
self.host = host
self.template = template
self.mask_symbol = mask_symbol
self.counter = counter
self.result = result
self.done = False
self.ignore_words_re = False if not len(ignore_words_re) else re.compile(ignore_words_re)
self.not_found_re = False if not len(not_found_re) else re.compile(not_found_re)
self.not_found_size = int(not_found_size)
self.method = method
if method == 'head' and (len(not_found_re) or self.not_found_size != -1):
self.method = 'get'
not_found_codes = not_found_codes.split(',')
not_found_codes.append('404')
self.not_found_codes = list(set(not_found_codes))
self.retest_codes = list(set(retest_codes.split(','))) if len(retest_codes) else []
self.delay = int(delay)
self.retest_delay = int(Registry().get('config')['dafs']['retest_delay'])
self.http = copy.deepcopy(Registry().get('http'))
self.logger = Registry().get('logger')
self.retest_limit = int(Registry().get('config')['dafs']['retest_limit'])
def run(self):
""" Run thread """
req_func = getattr(self.http, self.method)
need_retest = False
word = False
while not self.done:
self.last_action = int(time.time())
if self.delay:
time.sleep(self.delay)
try:
if not need_retest:
word = self.queue.get()
if not len(word.strip()) or (self.ignore_words_re and self.ignore_words_re.findall(word)):
continue
self.counter.up()
try:
url = self.template.replace(self.mask_symbol, word)
except UnicodeDecodeError:
self.logger.log(
"URL build error (UnicodeDecodeError) with word '{0}', skip it".format(pprint.pformat(word)),
_print=False
)
continue
rtime = int(time.time())
try:
resp = req_func(self.protocol + "://" + self.host + url)
except ConnectionError:
need_retest = True
self.http.change_proxy()
continue
if self.is_retest_need(word, resp):
time.sleep(self.retest_delay)
need_retest = True
continue
positive_item = False
if self.is_response_right(resp):
self.result.append({
'url': url,
'code': resp.status_code,
'time': int(time.time()) - rtime
})
positive_item = True
self.log_item(word, resp, positive_item)
self.check_positive_limit_stop(self.result)
#.........这里部分代码省略.........
示例5: FormBruterThread
# 需要导入模块: from classes.Registry import Registry [as 别名]
# 或者: from classes.Registry.Registry import log [as 别名]
class FormBruterThread(HttpThread):
""" Thread class for FormBruter module """
queue = None
method = None
url = None
mask_symbol = None
counter = None
last_action = 0
logger = None
retested_words = None
last_action = 0
def __init__(
self, queue, protocol, host, url, false_phrase, true_phrase, retest_codes, delay,
confstr, first_stop, login, pass_min_len, pass_max_len, pass_found, counter, result
):
threading.Thread.__init__(self)
self.retested_words = {}
self.queue = queue
self.protocol = protocol.lower()
self.host = host
self.url = url
self.false_phrase = false_phrase
self.true_phrase = true_phrase
self.delay = int(delay)
self.confstr = confstr
self.first_stop = first_stop
self.login = login
self.counter = counter
self.result = result
self.retest_codes = list(set(retest_codes.split(','))) if len(retest_codes) else []
self.pass_found = pass_found
self.done = False
self.logger = Registry().get('logger')
self.http = copy.deepcopy(Registry().get('http'))
self.http.every_request_new_session = True
self.pass_min_len = int(pass_min_len)
self.pass_max_len = int(pass_max_len)
self.retest_delay = int(Registry().get('config')['form_bruter']['retest_delay'])
self.retest_limit = int(Registry().get('config')['form_bruter']['retest_limit'])
def _make_conf_from_str(self, confstr):
result = {}
tmp = confstr.split("&")
for tmp_row in tmp:
field, value = tmp_row.split("=")
result[field] = value
return result
def _fill_conf(self, conf, login, password):
for field in conf.keys():
conf[field] = conf[field].replace("^USER^", login).replace("^PASS^", password)
return conf
def run(self):
""" Run thread """
need_retest = False
word = False
conf = self._make_conf_from_str(self.confstr)
while not self.pass_found and not self.done:
try:
self.last_action = int(time.time())
if self.pass_found:
self.done = True
break
if self.delay:
time.sleep(self.delay)
if not need_retest:
word = self.queue.get()
self.counter.up()
if (self.pass_min_len and len(word) < self.pass_min_len) or \
(self.pass_max_len and len(word) > self.pass_max_len):
continue
work_conf = self._fill_conf(dict(conf), self.login, word)
try:
resp = self.http.post(
self.protocol + "://" + self.host + self.url, data=work_conf, allow_redirects=True
)
except ConnectionError:
need_retest = True
self.http.change_proxy()
continue
if self.is_retest_need(word, resp):
time.sleep(self.retest_delay)
need_retest = True
continue
positive_item = False
if (len(self.false_phrase) and
not resp.content.count(self.false_phrase)) or \
(len(self.true_phrase) and resp.content.count(self.true_phrase)):
self.result.append({'word': word, 'content': resp.content})
#.........这里部分代码省略.........
示例6: WSModule
# 需要导入模块: from classes.Registry import Registry [as 别名]
# 或者: from classes.Registry.Registry import log [as 别名]
class WSModule(object):
""" Kernel class of modules """
log_path = None
log_width = 60
description = "module description"
result = None
done = False
options = []
time_count = False
logger = None
logger_enable = False
options_sets = {}
action = None
def __init__(self, kernel):
self.kernel = kernel
if self.log_path is None:
raise WSException('Module must have log path!')
def enable_logger(self):
""" Turn on logger """
self.logger = Registry().get('logger')
def pre_start_inf(self):
""" Show options values before work start """
log_str = ""
log_str += "---------------------------------\n"
for option in self.options:
log_str += "Option '{0}': {1}\n".format(option, self.options[option].value)
log_str += "---------------------------------"
print log_str
if int(Registry().get('config')['main']['confirm']):
tmp = raw_input("Do you have continue? [Y/n]")
if len(tmp.strip()) and tmp.lower() != 'y':
print "Aborted..."
exit(0)
self.logger.log(log_str + '\n', new_str=False, _print=False)
def run(self, action):
""" Run module """
getattr(self, action + "_action")()
def help(self):
""" Display module help """
pass
def finished(self):
""" Is module finished? """
return self.done
def prepare(self, action):
""" Prepare module for work """
if action not in self.options_sets:
raise WSException("Action '{0}' not exists! See help for actions list of this module.".format(action))
self.options = self.options_sets[action]
self.action = action
def validate_main(self):
""" Common user params validate functions """
options = self.options_sets[self.action].keys()
if 'selenium' in self.options.keys() and self.options['selenium'].value:
if 'not-found-re' in options and not self.options['not-found-re'].value:
raise WSException("Selenium enabled, module need a not found phrase (--not-found-re) for work!")
if int(self.options['threads'].value) > int(Registry().get('config')['selenium']['max_threads']):
raise WSException(
"Selenium enabled, very many threads value ({0}), see docs.".format(self.options['threads'].value)
)
if 'protocol' in self.options.keys() and self.options['protocol'].value.lower() not in ['http', 'https']:
raise WSException(
"Protocol param must be 'http' or 'https', but have value '{0}' !".
format(self.options['protocol'].value)
)
if 'method' in self.options.keys() and self.options['method'].value.lower() not in ['head', 'get', 'post']:
raise WSException(
"Method param must be only 'head', 'get' or 'post', but have value '{0}' !".
format(self.options['method'].value)
)
if 'not-found-codes' in self.options.keys() and len(self.options['not-found-codes'].value):
for code in self.options['not-found-codes'].value.strip().split(","):
if len(code.strip()) and not re.match(r'^(\d+)$', code.strip()):
raise WSException(
"Not-found code must be digital, but it is '{0}'".
format(code.strip())
)
if 'retest-codes' in self.options.keys() and len(self.options['retest-codes'].value):
for code in self.options['retest-codes'].value.strip().split(","):
if len(code.strip()) and not re.match(r'^(\d+)$', code.strip()):
raise WSException(
"Retest code must be digital, but it is '{0}'".
format(code.strip())
)
#.........这里部分代码省略.........
示例7: DafsThread
# 需要导入模块: from classes.Registry import Registry [as 别名]
# 或者: from classes.Registry.Registry import log [as 别名]
class DafsThread(threading.Thread):
""" Thread class for Dafs modules """
queue = None
method = None
url = None
mask_symbol = None
counter = None
retested_words = None
last_action = 0
retest_limit = int(Registry().get('config')['dafs']['retest_limit'])
def __init__(
self, queue, protocol, host, url, method, mask_symbol, not_found_re,
not_found_codes, retest_codes, delay, counter, result):
threading.Thread.__init__(self)
self.retested_words = {}
self.queue = queue
self.protocol = protocol.lower()
self.host = host
self.method = method if not (len(not_found_re) and method.lower() == 'head') else 'get'
self.url = url
self.mask_symbol = mask_symbol
self.counter = counter
self.result = result
self.done = False
self.not_found_re = False if not len(not_found_re) else re.compile(not_found_re)
not_found_codes = not_found_codes.split(',')
not_found_codes.append('404')
self.not_found_codes = list(set(not_found_codes))
self.retest_codes = list(set(retest_codes.split(','))) if len(retest_codes) else []
self.delay = int(delay)
self.http = copy.deepcopy(Registry().get('http'))
self.logger = Registry().get('logger')
def run(self):
""" Run thread """
req_func = getattr(self.http, self.method)
need_retest = False
word = False
while not self.done:
self.last_action = int(time.time())
if self.delay:
time.sleep(self.delay)
try:
if not need_retest:
word = self.queue.get()
self.counter.up()
try:
url = self.url.replace(self.mask_symbol, word)
except UnicodeDecodeError:
self.logger.log(
"URL build error (UnicodeDecodeError) with word '{0}', skip it".format(pprint.pformat(word)),
_print=False
)
continue
rtime = int(time.time())
try:
resp = req_func(self.protocol + "://" + self.host + url)
except ConnectionError:
need_retest = True
self.http.change_proxy()
continue
binary_content = resp is not None \
and 'content-type' in resp.headers \
and is_binary_content_type(resp.headers['content-type'])
if resp is not None and len(self.retest_codes) and str(resp.status_code) in self.retest_codes:
if word not in self.retested_words.keys():
self.retested_words[word] = 0
self.retested_words[word] += 1
if self.retested_words[word] <= self.retest_limit:
need_retest = True
time.sleep(int(Registry().get('config')['dafs']['retest_delay']))
continue
if resp is not None \
and str(resp.status_code) not in self.not_found_codes \
and not (not binary_content and self.not_found_re and self.not_found_re.findall(resp.content)):
self.result.append({
'url': url,
'code': resp.status_code,
'time': int(time.time()) - rtime
})
self.logger.item(word, resp.content if not resp is None else "", binary_content)
if len(self.result) >= int(Registry().get('config')['main']['positive_limit_stop']):
Registry().set('positive_limit_stop', True)
#.........这里部分代码省略.........
示例8: DnsBruteThread
# 需要导入模块: from classes.Registry import Registry [as 别名]
# 或者: from classes.Registry.Registry import log [as 别名]
class DnsBruteThread(threading.Thread):
""" Thread class for DnsBrute* modules """
done = False
def __init__(self, queue, domains, template, proto, msymbol, ignore_ip, dns_srv, delay, http_nf_re, ignore_words_re, result, counter):
threading.Thread.__init__(self)
self.queue = queue
self.domains = domains
self.proto = proto
self.dns_srv = dns_srv
self.counter = counter
self.msymbol = msymbol
self.template = template
self.result = result
self.delay = int(delay)
self.done = False
self.logger = Registry().get('logger')
self.ignore_ip = ignore_ip
self.http_nf_re = re.compile(http_nf_re) if len(http_nf_re) else None
self.ignore_words_re = False if not len(ignore_words_re) else re.compile(ignore_words_re)
def run(self):
""" Run thread """
ip_re = re.compile(r"(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})")
ns_resp_re = re.compile(r";ANSWER\s(?P<data>(.|\s)*)\s;AUTHORITY", re.M)
req_func = getattr(dns.query, self.proto.lower())
need_retest = False
while True:
if self.delay:
time.sleep(self.delay)
try:
if not need_retest:
host = self.queue.get()
if not len(host.strip()) or (self.ignore_words_re and self.ignore_words_re.findall(host)):
continue
self.counter.up()
for domain in self.domains:
check_name = self.template.replace(self.msymbol, host.decode('utf8', 'ignore')) + '.' + domain
query = dns.message.make_query(check_name, 'A')
try:
result = req_func(query, self.dns_srv, timeout=5)
except EOFError:
time.sleep(3)
need_retest = True
break
except BaseException as e:
if str(e).count("Connection refused") or\
str(e).count("Connection reset by peer") or\
str(e).count("[Errno 104]"):
time.sleep(3)
need_retest = True
break
else:
raise e
response = ns_resp_re.search(result.to_text())
if response is not None:
for ip in ip_re.findall(response.group('data')):
if not len(self.ignore_ip) or ip != self.ignore_ip:
if self.http_nf_re is not None:
resp = Registry().get('http').get(
"http://{0}/".format(ip),
headers={'Host': check_name},
allow_redirects=False)
if not self.http_nf_re.findall(resp.text):
self.result.append({'name': check_name, 'ip': ip, 'dns': self.dns_srv})
else:
resp = Registry().get('http').get(
"https://{0}/".format(ip),
headers={'Host': check_name},
allow_redirects=False,
verify=False)
if not self.http_nf_re.findall(resp.text):
self.result.append({'name': check_name, 'ip': ip, 'dns': self.dns_srv})
else:
self.result.append({'name': check_name, 'ip': ip, 'dns': self.dns_srv})
break
if len(self.result) >= int(Registry().get('config')['main']['positive_limit_stop']):
Registry().set('positive_limit_stop', True)
need_retest = False
except Queue.Empty:
self.done = True
break
except dns.exception.Timeout:
need_retest = True
time.sleep(1)
except BaseException as e:
self.logger.ex(e)
self.logger.log("Exception with {0}".format(self.dns_srv))
time.sleep(5)
示例9: SDafsThread
# 需要导入模块: from classes.Registry import Registry [as 别名]
# 或者: from classes.Registry.Registry import log [as 别名]
class SDafsThread(SeleniumThread):
""" Thread class for Dafs modules (selenium) """
queue = None
method = None
template = None
mask_symbol = None
counter = None
last_action = 0
def __init__(
self, queue, protocol, host, template, method, mask_symbol, not_found_re,
delay, ddos_phrase, ddos_human, recreate_re, ignore_words_re, counter, result
):
super(SDafsThread, self).__init__()
self.queue = queue
self.protocol = protocol.lower()
self.host = host
self.method = method if not (len(not_found_re) and method.lower() == 'head') else 'get'
self.template = template
self.mask_symbol = mask_symbol
self.counter = counter
self.result = result
self.done = False
self.not_found_re = False if not len(not_found_re) else re.compile(not_found_re)
self.recreate_re = False if not len(recreate_re) else re.compile(recreate_re)
self.http = Registry().get('http')
self.delay = int(delay)
self.ddos_phrase = ddos_phrase
self.ddos_human = ddos_human
self.ignore_words_re = False if not len(ignore_words_re) else re.compile(ignore_words_re)
Registry().set('url_for_proxy_check', "{0}://{1}".format(protocol, host))
self.browser_create()
self.logger = Registry().get('logger')
def run(self):
""" Run thread """
need_retest = False
word = None
while not self.done:
self.last_action = int(time.time())
if self.delay:
time.sleep(self.delay)
try:
if not need_retest:
word = self.queue.get()
if not len(word.strip()) or (self.ignore_words_re and self.ignore_words_re.findall(word)):
continue
self.counter.up()
try:
url = self.template.replace(self.mask_symbol, word)
except UnicodeDecodeError:
self.logger.log(
"URL build error (UnicodeDecodeError) with word '{0}', skip it".format(pprint.pformat(word)),
_print=False
)
continue
rtime = int(time.time())
self.browser.get(self.protocol + "://" + self.host + url)
if self.recreate_re and self.recreate_re.findall(self.browser.page_source):
need_retest = True
self.browser_close()
self.browser_create()
continue
positive_item = False
if not self.not_found_re.findall(self.browser.page_source):
self.result.append({
'url': url,
'code': 0,
'time': int(time.time()) - rtime
})
positive_item = True
self.logger.item(word, self.browser.page_source, False, positive_item)
if len(self.result) >= int(Registry().get('config')['main']['positive_limit_stop']):
Registry().set('positive_limit_stop', True)
need_retest = False
except Queue.Empty:
self.done = True
break
except UnicodeDecodeError as e:
self.logger.ex(e)
need_retest = False
except TimeoutException as e:
need_retest = True
self.browser_close()
self.browser_create()
continue
except BaseException as e:
#.........这里部分代码省略.........