Проксі представляють собою сервери, що дозволяють виконувати непрямі зʼєднання з мережевими сервісами. Вони працюють як посередники між комп'ютером та сайтом, до якого звертається користувач. Замість того, щоб напряму відправляти запит на сайт, його спочатку приймає проксі, а далі передає на кінцевий сервер. В результаті сайт бачить не вашу IP-адресу, а проксі-сервера.
Навіщо використовувати проксі?
До прикладу, потрібно зібрати дані із сайту, уникнувши при цьому обмежень або блокувань. Завдяки проксі-серверу ви змінюєте свою справжню IP-адресу, приховуючи свої цифрові дані.
У певних країнах обмежені або заблоковані деякі програми або сайти. Щоб все одно переглянути контент, використовується проксі тієї країни, де доступ до даних не заблоковано.
Якщо ви відправляєте велику кількість запитів на сайт, то це дуже навантажує його, внаслідок чого є великий ризик бути заблокованим. Використовуючи кілька проксі одночасно, можна рівномірно розподілити запити на сайт, щоб уникнути блокування.
Бібліотека requests – один із найпопулярніших інструментів для роботи з HTTP-запитами в Python. Він дозволяє легко виконувати GET і POST-запити. Користуючись Python Requests без проксі можна відправляти HTTP-запити, але це не забезпечує анонімність або обхід обмежень.
Щоб встановити requests, відкрийте термінал і виконайте наступну команду:
pip install requests
Щоб переконатися, що необхідна бібліотека встановлена правильно, відкрийте середовище розробки Python та введіть наступну команду:
import requests
print(requests.__version__)
Якщо все успішно встановлено, ви побачите номер версії.
Коли ми встановили бібліотеку requests, можна почати відправляти HTTP-запити. Але для того, щоб використовувати проксі, потрібні додаткові налаштування в Python.
Розглянемо детальніше, як правильно встановити проксі для запитів у Python. Окремо розберемо налаштування SOCKS-проксі.
Бібліотека requests дозволяє легко налаштовувати проксі в Python. Для цього передаємо адресу проксі-сервера у словник і використовуємо його у HTTP-запитах.
proxies = {
"http": "http://your-proxy-ip:port",
"https": "http://your-proxy-ip:port",
}
response = requests.get("http://example.com", proxies=proxies)
Якщо вимагається автентифікація через проксі в Python Requests, налаштувати це у Python дуже просто. Розглянемо приклад:
proxies = {
"http": "http://username:password@your-proxy-ip:port",
"https": "http://username:password@your-proxy-ip:port",
}
response = requests.get("http://example.com", proxies=proxies)
Тут зʼявилось два нових значення, які потрібно заповнити:
Якщо вам потрібна більша анонімність або ви працюєте з сайтами, де використовуються суворі обмеження, зазвичай HTTP-проксі можуть не працювати. Тому краще використовувати SOCKS-проксі.
Щоб почати використовувати SOCKS-проксі, потрібно встановити додаткову бібліотеку, за наступною командою:
pip install requests[socks]
Після встановлення можемо використовувати SOCKS-проксі, ось так:
import requests
proxies = {
"http": "socks5h://your-proxy-ip:port",
"https": "socks5h://your-proxy-ip:port",
}
response = requests.get("http://example.com", proxies=proxies)
І якщо проксі-сервер вимагає автентифікацію, додаємо їх наступним чином:
proxies = {
"http": "socks5h://username:password@your-proxy-ip:port",
"https": "socks5h://username:password@your-proxy-ip:port",
}
Якщо вам потрібно відправляти багато запитів через один і той самий проксі, замість того, щоб щоразу вказувати його у кожному запиті, зручніше використовувати проксі для сесії в Python Requests.
Застосування проксі таким чином дозволяє зберігати одні й ті самі параметри для всіх сесій. До того ж це не тільки спрощує код, але й покращує продуктивність.
Створити сесію дуже просто, достатньо використовувати лише requests.Session().
Розглянемо приклад:
import requests
# Створення сесії
session = requests.Session()
session.proxies = {
"http": "http://username:password@your-proxy-ip:port",
"https": "http://username:password@your-proxy-ip:port",
}
# Запит через сесію
response = session.get("http://example.com")
Після такого налаштування всі запити даної сесії будуть автоматично використовувати вказаний проксі.
Коли ви активно взаємодієте із веб сайтами, наприклад, у парсингу або автоматизації, постійне використання одного й того самого проксі може призвести до блокування. Цього можна уникнути, якщо перемикати проксі між запитами, маючи декілька інших серверів.
Нижче наведений приклад, як з допомогою циклу надсилати щоразу різний проксі, для взаємодії з веб сторінкою:
import requests
import random
proxies_list = [
"http://username:password@your-proxy-ip[1]:port",
"http://username:password@your-proxy-ip[2]:port",
"http://username:password@your-proxy-ip[3]:port",
]
session = requests.Session()
for _ in range(5):
proxy = random.choice(proxies_list) # Випадковий вибір проксі
session.proxies = {"http": proxy, "https": proxy}
response = session.get("http://example.com")
print(f"Використано проксі: {proxy}")
print(response.status_code)
Щоб працювати з проксі ще ефективніше:
Ми розглянули, що таке проксі-сервер і як правильно використовувати проксі з Requests в Python. Даний приклад демонструє, як використовувати звичайні та SOCKS-проксі, як забезпечувати автентифікацію та керувати проксі за допомогою сесій, для спрощення коду.
Мы получили вашу заявку!
Ответ будет отправлен на почту в ближайшее время.
С уважением proxy-seller.com!
Коментарі: 0