![]() |
#2
cbd6662019-09-26 16:53
|

time.sleep(3)
queue = Queue()
New_start = input(('导入批量url文本:'))
levels = int(input(('设置扫描等级:')))
countss = int(input(('设置扫描进程数:')))
p = multiprocessing.Pool(countss)
list_ = list(set(
[x.replace('\n', '') if x.startswith('http') else 'http://' + x.replace('\n', '') for x in
open(New_start, 'r', encoding='UTF-8').readlines()]))
for i in list_:
queue.put(i)
print(i + " -------> 加入队列 当前队列总任务数:%s" % queue.qsize())
while not queue.empty():
# 子进程原来跑 进行测试
p.apply_async(get_url_sql, args=(queue.get(), levels))
p.close()
p.join()
print("当前队列中的任务数为:%s" % queue.qsize())
while True:
if queue.qsize() < 10:
opm = OPMysql()
sql = "select url from url_index limit 1,20"
res = opm.op_select(sql)
_list = [i[j].replace('\r\n', '').replace(' ', '')
for i in res for j in i]
url_list = list(set(_list))
for i in url_list:
time.sleep(0.5)
queue.put(i)
print(i + " -------> 加入队列 当前队列总任务数:%s" % queue.qsize())
opm.dispose() # 释放资源
queue = Queue()
New_start = input(('导入批量url文本:'))
levels = int(input(('设置扫描等级:')))
countss = int(input(('设置扫描进程数:')))
p = multiprocessing.Pool(countss)
list_ = list(set(
[x.replace('\n', '') if x.startswith('http') else 'http://' + x.replace('\n', '') for x in
open(New_start, 'r', encoding='UTF-8').readlines()]))
for i in list_:
queue.put(i)
print(i + " -------> 加入队列 当前队列总任务数:%s" % queue.qsize())
while not queue.empty():
# 子进程原来跑 进行测试
p.apply_async(get_url_sql, args=(queue.get(), levels))
p.close()
p.join()
print("当前队列中的任务数为:%s" % queue.qsize())
while True:
if queue.qsize() < 10:
opm = OPMysql()
sql = "select url from url_index limit 1,20"
res = opm.op_select(sql)
_list = [i[j].replace('\r\n', '').replace(' ', '')
for i in res for j in i]
url_list = list(set(_list))
for i in url_list:
time.sleep(0.5)
queue.put(i)
print(i + " -------> 加入队列 当前队列总任务数:%s" % queue.qsize())
opm.dispose() # 释放资源
哥哥们帮帮忙 现在的情况是这样的。。。 自己做了一个下午了
我自己写的想实现多进程异步 子进程取出队列的url跑sql 主进程就是数据库的交互把url放入队列中 但是这样写好像不行 是哪里错了吗
只有本站会员才能查看附件,请 登录
[此贴子已经被作者于2019-9-26 16:54编辑过]