rastreador multithread enquanto estiver usando o proxy tor

Estou tentando criar um rastreador multiencadeado que usa proxies tor: Estou usando o seguinte para estabelecer a conexão tor:

from stem import Signal
from stem.control import Controller
controller = Controller.from_port(port=9151)
def connectTor():
    socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, "127.0.0.1", 9150)
    socket.socket = socks.socksocket


def renew_tor():
    global request_headers
    request_headers = {
        "Accept-Language": "en-US,en;q=0.5",
        "User-Agent": random.choice(BROWSERS),
        "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
        "Referer": "http://thewebsite2.com",
        "Connection": "close"
    }

    controller.authenticate()
    controller.signal(Signal.NEWNYM)

Aqui está o buscador de URL:

def get_soup(url):
    while True:
        try:
            connectTor()
            r = requests.Session()
            response = r.get(url, headers=request_headers)
            the_page = response.content.decode('utf-8',errors='ignore')
            the_soup = BeautifulSoup(the_page, 'html.parser')
            if "captcha" in the_page.lower():
                print("flag condition matched while url: ", url)
                #print(the_page)
                renew_tor()
            else:
                return the_soup
                break
        except Exception as e:
            print ("Error while URL :", url, str(e))

Em seguida, estou criando um trabalho de busca multithread:

with futures.ThreadPoolExecutor(200) as executor:
            for url in zurls:
                future = executor.submit(fetchjob,url)

estou recebendo o seguinte erro, que não vejo quando uso o multiprocessamento:

 Socket connection failed (Socket error: 0x01: General SOCKS server failure)

Eu apreciaria Qualquer conselho para evitar erro de meias e melhorar o desempenho do método de rastreamento para torná-lo multi-thread.

questionAnswers(1)

yourAnswerToTheQuestion