#python #proxy #python-requests
Вопрос:
Я хочу просмотреть некоторые веб-сайты с помощью Python и библиотеки BeautifulSoup, и я хочу установить несколько прокси-серверов. Я столкнулся с проблемой с настройкой прокси-серверов. Когда я устанавливаю https-прокси, он не работает, но когда я устанавливаю http-прокси, он работает. Вы знаете, в чем проблема?
import requests
https_proxies = [{'https': 'https://60.191.11.241:3128'},
{'https': 'https://129.226.162.177:80'},
{'https': 'https://103.231.80.202:55443'},
{'https': 'https://167.172.171.115:34538'},
{'https': 'https://103.104.193.34:6000'},
{'https': 'https://200.60.4.238:999'}]
for proxy in https_proxies:
try:
r1 = requests.get("https://edition.cnn.com/", proxies=proxy, timeout = 3)
print(r1)
except:
print("BAD PROXY")
http_proxies = [{'http': 'http://194.169.164.14:34334'},
{'http': 'http://46.167.238.109:5678'},
{'http': 'http://201.59.102.35:5678'},
{'http': 'http://31.25.243.40:9147'},
{'http': 'http://178.162.202.44:1025'}]
for proxy in http_proxies:
try:
r1 = requests.get("https://edition.cnn.com/", proxies=proxy, timeout = 3)
print(r1)
except:
print("BAD PROXY")
Я пробовал использовать более 50 HTTPS-прокси на 10 разных сайтах, и это всегда одно и то же.
Это сайт, который я использовал для получения прокси:
https://geonode.com/free-proxy-list
И это:
https://free-proxy-list.net/
Комментарии:
1. 1) пропущенные двоеточия после
http/https
2) http и https используют разные порты2. Хорошо для двоеточий, я пробовал с двоеточиями и без них, и это работает в обоих направлениях. Можете ли вы объяснить мне 2) часть? Это сайт, который я использовал для получения прокси geonode.com/free-proxy-list
3. @Marat Я использовал прокси, которые разрешены по протоколу https, и все равно они не работают
4. Это означает, что вы не можете просто изменить префикс прокси на https и надеяться, что это сработает. Это работает для веб-сайтов, когда порт явно не задан, но только потому, что браузеры используют набор из двух портов по умолчанию. Таким образом, просто взглянув на ту же комбинацию прокси порт, которая использовалась повторно, это может не сработать
5. Как только вы используете набор реальных HTTPS-прокси, это работает. Обратите внимание, что другое исключение будет выдано, если прокси-сервер не является HTTPS, и если он просто не работает. Большинство публичных прокси-серверов нефункциональны (будут выбрасываться
ConnectionTimeout
), но некоторые действительно работают. Никаких изменений в коде не требуется, просто другой набор прокси-серверов и, возможно, более избирательныйexcept