Многие сайты и сервисы блокируют IP-адреса, отправляющие большое количество запросов за короткое время. Вы можете обойти такую защиту, используя прокси-серверы (это не гарантирует успех, но иногда помогает решить проблему). В статье покажу, как использовать Python для работы с Proxy.
Еще по теме: Работа с веб-архивом в Python
Работа с Proxy в Python
Прокси-сервер, также известный как шлюз уровня приложения, может быть частью программного обеспечения или компьютером. В любом случае он работает как шлюз между вашим устройством и сервером, к которому вы подключены. Это как посол, который действует как ваш представитель при транзакциях с различными серверами в Интернете.
Использовать Proxy в Python очень просто. При создании запроса, нужно указать адрес прокси-сервера, через который хотите перенаправить трафик.
Запустите simple_proxy.py:
1 2 3 4 5 6 7 8 9 10 11 12 |
# Пакет запросов: import requests # Создать переменную с https прокси-сервером и портом: proxies = { 'https': '135.181.149.47:8080', } # Создать переменную с URL для запроса: url = 'https://cleantalk.org/blacklists/ivanov@gmail.com' # Сделать запрос через прокси-сервер: response = requests.post(url, proxies=proxies) # Вывести текст веб-страницы: print(response.text) |
Пусть вас не пугает мой терминал, я использую GitPod.
Прокси-сервер, используемый в качестве примера в приведенном выше коде, вероятно, больше не работает. Поэтому, замените его другим. Огромное количество бесплатных серверов можно найти в Google за пару секунд.
Примеры списка прокси-серверов:
- https://hidemy.name/en/
- https://github.com/clarketm/proxy-list
- https://github.com/TheSpeedX/PROXY-List
- https://github.com/ShiftyTR/Proxy-List
- https://github.com/jetkai/proxy-list
Для успешного обхода защиты от скрапинга, одного прокси-сервера недостаточно . Ведь целевой сайт может блокировать их один за другим и, кроме того, бесплатные прокси-серверы могут быть крайне нестабильны.
Поэтому вам может потребоваться поиск прокси-сервера, чтобы найти тот, который работает и не заблокирован.
Запустите proxy_permulation.py:
Как и в первом случае, прокси-адреса, указанные в списке на момент публикации статьи, могут не работать. Поэтому замените их на другие (которые, как сказано выше, можно найти в бесплатных списках Прокси) перед запуском скрипта.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
# Пакет запросов: import requests # Создать список с прокси-серверами https и портами: ip_addresses = [ "135.181.149.47:8080", "someproxy1.com:80", "someproxy2.com:80", "someproxy3.com:80", "someproxy4.com:80", "someproxy5.com:80", "someproxy6.com:80"] # Создать переменную с URL для запроса: url = 'https://cleantalk.org/blacklists/ivanov@gmail.com' # Пройти по списку ip_addresses: for proxy in ip_addresses: proxies = {'https': proxy} # Попробовать сделать запрос и вывести результаты: try: response = requests.post(url, proxies=proxies) print(response.text) except: print("No") |
Вы также можете использовать готовые инструменты для перенаправления трафика через прокси-сервера:
Вот простой пример запроса с добавленным заголовком User-Agent.
Запустите useragent.py:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# Импорт пакета запроса: import requests # Создать переменную со ссылкой на сайт: url = 'https://www.whatismybrowser.com/' # Создать список с заголовками запроса (сейчас используем только заголовок User-Agent): headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.85 Safari/537.36' } # Послать запрос: response = requests.get(url, headers=headers) # Вывести текст ответа: print(response.text) |
В результате должен отобразиться html-код страницы, который будет содержать User-Agent, указанный в заголовках, переданных вместе с запросом.
На этом все. Теперь вы знаете, как использовать Python для работы с Proxy. В следующей статье продолжим использование Python в OSINT.
ПОЛЕЗНЫЕ ССЫЛКИ: