#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» к запросу, он сработал.