Python — как подключить прокси?

Привет всем! Сегодня мы разберемся с вопросом, который звучит как: «Python — как подключить прокси?». Зачем вам нужно прокси — решать вам. Ну, например вы хотите собрать данные с сайта, который не любит многочисленные соединения. Или еще зачем-то. Вообщем — вам нужно подключить прокси. Поехали!

Сам код, представленный ниже — будет выглядеть следующим образом:
1. Создаем соединение с сайтом, который показывает наш текущий IP
2. Выводим полученные данные, дабы убедиться, что все правильно
3. Подключаем прокси, и создаем соединение уже через него
4. Соединяемся с сайтом, который показывает наш текущий IP (теперь уже с учетом прокси :)) — и выводим полученные данные 🙂
Итак, для проверки нашего IP адреса будем использовать сайт 2ip.ru (очень даже неплох). Кроме этого — будем использовать поддельные заголовки браузера, что бы не палиться без надобности.

import requests #Подключаем библиотеку для обработки и создания запросов
from bs4 import BeautifulSoup #подключаем библиотеку для удобной работы с поиском нужных данных на сайтах
headers = ({'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/69.0'}) #Создали заголовок браузера ;)

Итак, у нас имеется: подключенные библиотеки + поддельный заголовок браузера. Теперь инициализируем соединение с сайтом, что бы получить наше текущее местоположение и IP:

get_location_link = 'https://2ip.ru' #Создаем переменнуюю, которая содержит ссылку на сайт, который определяет наш IP и местоположение
response = requests.get(url=get_location_link, headers=headers) #Формируем переменную, которая состоит из ответа сайта (на который мы в качестве запроса отправили в том числе наш поддельный заголовок браузера)
soup = BeautifulSoup(response.text, 'lxml') #Создали переменную, которая состоит из текста отзыва
ip = soup.find('div', class_ = 'ip').text.strip() #В эту переменную загоняем наш адрес, который выдается сайтом 2ip.ru (он прячется в div, в классе ip)
location = soup.find('div', class_ = 'value-country').text.strip() #А в этой переменной сохраняем местоположение (на сайте 2ip.ru оно показывается в div, в классе value-country)
print(ip, ':', location) #Выводим в терминале наш адрес и местоположение

Итак, текущее местоположение мы получаем-выводим. А теперь создадим соединение через прокси сервер, и выведем его ниже, так сказать — для сравнения:

print('А теперь через прокси:') #Выводим в терминале текст, что бы понимать - когда соединение через прокси 
proxy_link = {'https':'8.217.12.240:59394'} #В этой переменной в словаре указываем протокол и адрес прокси + порт соединения. Где взять прокси - вариантов много, но это чуть позже
response = requests.get(url=get_location_link, headers=headers, proxies=proxy_link) #Инициализируем соединение с сайтом, НО! Теперь уже в параметрах соединения указываем прокси
soup = BeautifulSoup(response.text, 'lxml') #Создали переменную, которая состоит из текста ответа сайта
ip = soup.find('div', class_ = 'ip').text.strip() #В эту переменную загоняем наш адрес, который выдается сайтом 2ip.ru (он прячется в div, в классе ip)
location = soup.find('div', class_ = 'value-country').text.strip() #А в этой переменной сохраняем местоположение (на сайте 2ip.ru оно показывается в div, в классе value-country)
print(ip, ':', location) #Выводим в терминале наш адрес и местоположение

Собственно, если все было правильно — у вас в терминале покажется нечто вроде такого:
Python - как подключить прокси

Сам код в полном виде выглядит так:

import requests
from bs4 import BeautifulSoup
 
headers = ({'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/69.0'})
get_location_link = 'https://2ip.ru'
proxy_link = {'https':'8.217.12.240:59394'}
response = requests.get(url=get_location_link, headers=headers)
soup = BeautifulSoup(response.text, 'lxml')
ip = soup.find('div', class_ = 'ip').text.strip()
location = soup.find('div', class_ = 'value-country').text.strip()
print(ip, ':', location)
print('А теперь через прокси:')
response = requests.get(url=get_location_link, headers=headers, proxies=proxy_link)
soup = BeautifulSoup(response.text, 'lxml')
ip = soup.find('div', class_ = 'ip').text.strip()
location = soup.find('div', class_ = 'value-country').text.strip()
print(ip, ':', location)

На этом все, что я мог сказать по поводу «как подключить прокси» — сказано 🙂 Спасибо за внимание. Как всегда — в случае возникновения вопросов пишите на почту или в Телеграм.