Прокси-серверы не подключаются. Модуль запросов Python 3

#python-3.x #python-requests

#python-3.x #python-запросы

Вопрос:

Я создаю прокси-скребок для одного из своих приложений. Однако, когда выполняется приведенный ниже код, все прокси-серверы не работают.

         with open("proxies.txt", "w") as f:
            print("writing proxies to the file")
            percent=0
            counted=0
            good=0
            bad=0
            for omegaproxy in writeproxies():
                annoyingshit= {
                    "http": omegaproxy
                }
                try:
                    response=requests.get("http://discord.com",proxies=annoyingshit,timeout=loadingtime,headers={'Content-Type': 'application/json',"User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11"})
                    if response.elapsed.total_seconds()<=float(loadingtime):
                        if response.status_code() > 199 and response.status_code() < 300:
                            f.write(omegaproxy "n")
                            counted =1
                            good =1
                except:
                    counted =1
                    bad =1
                    pass
                percent=int((counted/proxycount)*100)
                barprogress=int(percent/5)
                print(str(percent) "% [" (">"*barprogress) ("-"*(20-barprogress)) "]   " "bad proxies: " str(bad) "/" str(proxycount) "  " "good proxies: " str(good) "/" str(proxycount),end="r")
            f.close()
        print("n")
        print("there were " str(good) " good proxies and " str(bad) " bad proxies")
        print("n")
        print("added proxies to the list")
  

(Если вы видели, что он сказал discord.com это потому, что приложение относится к discord)

Функция writeproxies получает сотни прокси-серверов с трех веб-сайтов:

         async def proxy1(): return await a().get('https://free-proxy-list.net', timeout=30)
        async def proxy2(): return await a().get('https://www.us-proxy.org', timeout=30)
        async def proxy3(): return await a().get('https://www.sslproxies.org', timeout=30)

        def writeproxies():
            results = a().run(proxy1, proxy2, proxy3)
            proxies = ''
            for result in results:
                cells = result.html.find('td')
                stringshit = ''
                for cell in cells:
                    ctext = cell.text 
                    if not ctext.lower().islower():
                        if '.' in ctext:
                            ctext = 'n'   ctext   ':'
                        stringshit  = ctext
                proxies  = stringshit
            alldaproxies = []
            for proxy in proxies.split('n'):
                if proxy != '':
                    alldaproxies.append(proxy)
            global proxycount
            proxycount=len(alldaproxies)
            print("This could take from " str(int((len(alldaproxies)-250)*loadingtime)) " to " str(int((len(alldaproxies) 250)*loadingtime)) " seconds")
            return alldaproxies
  

Я попытался использовать один из прокси-серверов с прокси-сайтов для доступа к сайту, используя другой скрипт в качестве теста, но он продолжал говорить «запросы.исключения.TooManyRedirects: превышено 30 перенаправлений. » и когда я изменил максимальное количество перенаправлений на 300, он сказал «запросы.исключения.TooManyRedirects: превышено 300 перенаправлений «. Я делаю что-то не так с заголовками, которые запускают какой-то бесконечный цикл перенаправления? Как я мог это исправить? Пожалуйста, дайте мне знать.

Ответ №1:

Я такой идиот, что отлаживал 3 часа, но когда я добавил «allow_redirects = False» к запросу, он сработал.