/
ilya.petrash
/
SimplePyScripts
Обзор
Документация
Войти
/
ilya.petrash
/
SimplePyScripts
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
job_compassplus/site_common.py
61 строка
1 KB
gil9red
Refactoring
28 июн 2024, 11:00
28 июн 2024, 11:00
533a6da
Код
Авторство
О чём код?
#!/usr/bin/env python3 # -*- coding: utf-8 -*- __author__ = "ipetrash" import time # pip install requests_ntlm2 from requests_ntlm2 import HttpNtlmAuth from requests import Response from requests.exceptions import RequestException from root_common import session from site_config_token import USERNAME, PASSWORD def do_request(method, url: str, *args, **kwargs) -> Response: attempts = 0 max_attempts = 5 while True: attempts += 1 try: rs = method( url, auth=HttpNtlmAuth(USERNAME, PASSWORD), *args, **kwargs ) # Через какое-то отваливается доступ, почистим куки и заново авторизуемся if rs.status_code == 401: session.cookies.clear() rs.raise_for_status() return rs except RequestException as e: if attempts >= max_attempts: raise e time.sleep(5) # 5 seconds def do_get(url: str, *args, **kwargs) -> Response: return do_request(session.get, url, *args, **kwargs) def do_post(url: str, *args, **kwargs) -> Response: return do_request(session.post, url, *args, **kwargs) if __name__ == "__main__": rs = do_get("https://mysite.compassplus.com:443/Person.aspx?accountname=CP%5Cipetrash") print(rs) rs = do_get("https://portal.compassplus.com/Pages/default.aspx") print(rs)