Найти - Пользователи
Полная версия: повторить провалившиеся условие
Начало » Python для новичков » повторить провалившиеся условие
1
sb04p2
примерный код
 def files(inject):  
открываем тхт с данными payload  
def fgfg():
открываем тхт с проксями
def osn(mailp):
    try:
        session = requests.Session()
        proxy_line = fgfg()
        session.proxies = {'http' : 'socks5://' + proxy_line, 'https' : 'socks5://' + proxy_line}
        url = 'https://auth.com/v1/oauth/token'
        payload = {
'client_id':mailp[0][1].replace('\n', ''),
'client_secret':mailp[0][0]
}
        r = session.post(url, timeout=15, data=payload)
    except:
        pass
def main():
    mailp = files(inject)
    p = ThreadPool(5)
    p.map(osn, mailp)
if __name__ == '__main__':
    main()

как в def osn(mailp): осуществить повтор запроса с mailp тем который по той или иной причине не прошел с первого раза из-за проблем с сетью(прокси)

т.е. допустим все идет хорошо и возник скажем таймаут для client_id = 2 и client_secret = 4 как повторить запрос с этими же параметрами и при этом будет браться новый прокся (как бы повторяем функцию по новой)

пока использую после except запись в файл client_id + client_secret (mailp) и после окончания всего процесса прогоняю по новой то что попало в except

пихнуть return в except?
py.user.next
sb04p2
 p.map(osn, mailp)
Вот в этом месте можешь вызывать другую функцию, которая вызывает один раз функцию osn() и если та застряла, запускала бы её ещё раз. А чтобы определить застряла ли функция osn(), внутри неё должен быть такой try … except , чтобы возвращалось True/False в случае успеха/сбоя.

Но лучше всего генерить список прокси отдельно и для osn() уже подобранный прокси подавать снаружи через аргумент. Так ты сможешь прокси подбирать произвольными способами, при этом не затрагивая код, в котором происходит само подключение через прокси.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB