#python #beautifulsoup #python-requests
#питон #прекрасный суп #python-запросы
Вопрос:
ИСПРАВИЛ ЭТО САМ — Изменил list.append(i) на list.append(i.strip())
Я пытаюсь выполнить простой http-запрос с помощью прокси-сервера, который отлично работает, если я жестко закодирую имя пользователя и пароль. В тот момент, когда я пытаюсь использовать функцию разделения для извлечения этих данных из текстового файла, она терпит неудачу, я не слишком уверен, почему. Я не получаю ошибку python, просто сообщение об ошибке с прокси-сайта о том, что я не прошел аутентификацию.
Данные прокси-сервера в моем текстовом файле выглядят следующим образом: blah1.proxy.com: 33128: dummyusername!123:пароль blah2.proxy.com: 33128: dummyusername!456:пароль
import requests
from requests.auth import HTTPProxyAuth
from itertools import cycle
list = []
f = open("C:proxiesproxies.txt", "rt")
for i in f:
list.append(i)
proxy_pool = cycle(list)
#Get a proxy from the pool
proxy = next(proxy_pool)
prox = {
'http': "http://" i.split(':')[2] ":" i.split(':')[3] "@" i.split(':')[0] ":" i.split(':')[1]
}
ext_ip = requests.get('http://checkip.dyndns.org', proxies=prox)
print (ext_ip.text)
Не уверен, почему это не удается, но если я жестко закодирую имя пользователя и пароль вместо использования команды split, это сработает. Я попытался напечатать команду split, и она печатает правильное имя пользователя и пароль.
Ответ №1:
Попробуй:
import requests
from requests.auth import HTTPProxyAuth
from itertools import cycle
list = []
f = open("C:proxiesproxies.txt", "rt")
for i in f:
list.append(i)
proxy_pool = cycle(list)
#Get a proxy from the pool
proxy_str = next(proxy_pool)
splitted = proxy_str.split(":")
proxy_url = f"http://{splitted[2]}:{splitted[3]}@{splitted[0]}:{splitted[1]}"
proxy = {'http': proxy_url}
ext_ip = requests.get('http://checkip.dyndns.org', proxies=proxy)
print (ext_ip.text)
Комментарии:
1. к сожалению, это тоже не работает, мой прокси-провайдер возвращает «ОШИБКА: отказано в доступе к кешу».
2. Иногда вам просто нужно определить переменную окружения http_proxy и https_proxy. Но ваша проблема, похоже, находится на другом уровне.