Requests: gevent + рдореЛрдЬреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдмреНрд▓реЙрдХ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 10 рдлрд╝рд░ре░ 2017  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: psf/requests

рдореИрдВ http рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдорд╡рд░реНрддреА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЬрдЧрд░ (реи.рен.рем), gevnet (рез.рез.реи), рдЕрдиреБрд░реЛрдз (реи.резрез.рез) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдФрд░ рдпрд╣ рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЬрдм рдореИрдВ рдЕрдиреБрд░реЛрдзреЛрдВ рдореЗрдВ рдореЛрдЬреЗ рдкреНрд░реЙрдХреНрд╕реА рдЬреЛрдбрд╝рддрд╛ рд╣реВрдВ, рддреЛ рдпрд╣ рдЕрд╡рд░реБрджреНрдз рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдпрд╣ рдореЗрд░рд╛ рдХреЛрдб рд╣реИ:

import time
import requests
import logging
import click

import gevent
from gevent import monkey
monkey.patch_all()

FORMAT = '%(asctime)-15s %(message)s'
logging.basicConfig(format=FORMAT)
logger = logging.getLogger('test')

#socks proxy
user = MY_SOCKS_PROXY_USERNAME
password = MY_SOCKS_PROXY_PASSWORD
host = MY_SOCKS_PROXY_HOST
port = MY_SOCKS_PROXY_PORT
proxies = {
        'http': 'socks5://{0}:{1}@{2}:{3}'.format(user, password, host, port),
        'https': 'socks5://{0}:{1}@{2}:{3}'.format(user, password, host, port),
}
url = 'https://www.youtube.com/user/NBA'


def fetch_url(i,with_proxy):
    while True:
        logger.warning('thread %s fetch url'%i)
        try:
            if with_proxy:
                res = requests.get(url,proxies=proxies, timeout=5)
            else:
                res = requests.get(url, timeout=5)
        except Exception as e:
            logger.error(str(e))
            continue

        logger.warning(res.status_code)

def do_other_thing():
    while True:
        logger.warning('do other thing...')
        time.sleep(1)

@click.command()
@click.option('--with_proxy/--without_proxy',help='if use proxy', default=True)
def run(with_proxy):
    if with_proxy:
        logger.warning('with proxy......')
    else:
        logger.warning('without proxy......')
    ts = []
    ts.append(gevent.spawn(do_other_thing))
    for i in xrange(3):
        ts.append(gevent.spawn(fetch_url,i,with_proxy))
    gevent.joinall(ts)

if __name__=='__main__':
    run()

рдпреЗ рддрд╕реНрд╡реАрд░реЗрдВ рдкрд░рд┐рдгрд╛рдо рджрд┐рдЦрд╛рддреА рд╣реИрдВред

рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рд╕рд╛рде рдЪрд▓рд╛рдПрдВ
рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рдмрд┐рдирд╛ рдЪрд▓рд╛рдПрдВ

рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рд╕рд╛рде, do_other_thing fetch_url рдХрд┐рдП рдЬрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдмреНрд▓реЙрдХ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рдмрд┐рдирд╛ рдпрд╣ рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред (рдЬреАрдПрдлрдбрдмреНрд▓реНрдпреВ рдХреА рд╡рдЬрд╣ рд╕реЗ рдЯрд╛рдЗрдордЖрдЙрдЯ рддреНрд░реБрдЯрд┐ рд╣реЛрддреА рд╣реИ)

рдХреНрдпрд╛ рдХреЛрдИ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рдореЗрд░реА рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ? рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж!

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореЗрд░рд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдЕрдиреБрдорд╛рди рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдмрд╣реБрдд рджреЗрд░ рд╕реЗ рдмрдВрджрд░рдмрд╛рдВрдЯ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЧреАрд╡реЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдЖрдкрдХреЛ рдХреБрдЫ рдФрд░ рдЖрдпрд╛рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкрд╣рд▓реЗ рдордВрдХреАрдкреИрдЪ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдмрд╛рдж рдореЗрдВ рдРрд╕рд╛ рдХрд░рдиреЗ рд╕реЗ рдХреБрдЫ рднреА рдЯреВрдЯрдиреЗ рдХрд╛ рдЬреЛрдЦрд┐рдо рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рдиреЗ рдЙрди рдЪреАрдЬреЛрдВ рд╕реЗ from рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ рдмрдВрджрд░реЛрдВ рдХреЛ рдкреИрджрд╛ рдХрд░рддреА рд╣реИрдВред

рдХреНрдпрд╛ рдЖрдк рдХреБрдЫ рдФрд░ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЕрдкрдиреЗ рдЖрдпрд╛рдд рдФрд░ рдордВрдХреАрдкреИрдЪ рдХреЛ рдЕрдкрдиреА рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рд▓реЗ рдЬрд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рд╕рднреА 3 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдореЗрд░рд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдЕрдиреБрдорд╛рди рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдмрд╣реБрдд рджреЗрд░ рд╕реЗ рдмрдВрджрд░рдмрд╛рдВрдЯ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЧреАрд╡реЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдЖрдкрдХреЛ рдХреБрдЫ рдФрд░ рдЖрдпрд╛рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкрд╣рд▓реЗ рдордВрдХреАрдкреИрдЪ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдмрд╛рдж рдореЗрдВ рдРрд╕рд╛ рдХрд░рдиреЗ рд╕реЗ рдХреБрдЫ рднреА рдЯреВрдЯрдиреЗ рдХрд╛ рдЬреЛрдЦрд┐рдо рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рдиреЗ рдЙрди рдЪреАрдЬреЛрдВ рд╕реЗ from рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ рдмрдВрджрд░реЛрдВ рдХреЛ рдкреИрджрд╛ рдХрд░рддреА рд╣реИрдВред

рдХреНрдпрд╛ рдЖрдк рдХреБрдЫ рдФрд░ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЕрдкрдиреЗ рдЖрдпрд╛рдд рдФрд░ рдордВрдХреАрдкреИрдЪ рдХреЛ рдЕрдкрдиреА рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рд▓реЗ рдЬрд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рд╣рд╛рдБ, 'рдЕрдкрдиреЗ рдЖрдпрд╛рдд рдФрд░ рдордВрдХреАрдкреИрдЪ рдХреЛ рдЕрдкрдиреА рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рд▓реЗ рдЬрд╛рдиреЗ' рд╕реЗ рдореЗрд░реА рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИ! рдЖрдкрдХрд╛ рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж!

рдпрд╣ рд╕реБрдЭрд╛рд╡ рдореЗрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рднреА рд╣рд▓ рдХрд░рддрд╛ рд╣реИред
рдореЗрд░реЗ рдкрд╛рд╕ рдП, рдмреА, рд╕реА рдирд╛рдордХ 3 рдлрд╛рдЗрд▓реЗрдВ рд╣реИрдВ, рдФрд░ рд░рди рдЕрдиреБрдХреНрд░рдо рдП-> рдмреА-> рд╕реА рд╣реИред рдореИрдВ рдмреА рдореЗрдВ рдЧреАрд╡реЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдмреА рдореЗрдВ рдмрдВрджрд░рдкреИрдЪ рдЬреЛрдбрд╝рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдЕрдиреБрд░реЛрдз + рдореЛрдЬреЗ рдХреЗ рд╕рд╛рде рдмреНрд▓реЙрдХ рдХрд░рддрд╛ рд╣реВрдВред рдЕрдм рдореИрдВ рдП рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдордВрдХреАрдкреИрдЪ рдЬреЛрдбрд╝рддрд╛ рд╣реВрдВ, рдпрд╣ рдЕрдм рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ! рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рджреВрд╕рд░реЛрдВ рдХреА рдорджрдж рдХрд░реЗрдЧрд╛!

рдлрд┐рд░ рд╕реЗ рдзрдиреНрдпрд╡рд╛рдж!

рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЦреБрд╢!

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

thadeusb picture thadeusb  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

8key picture 8key  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

brainwane picture brainwane  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

justlurking picture justlurking  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

cnicodeme picture cnicodeme  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ