Узнайте, как просто настроить прокси-сервер на Raspberry Pi с помощью удобного программного обеспечения с открытым исходным кодом, известного как Squid. В этом материале мы предоставляем пошаговое руководство, демонстрирующее его применение для парсинга веб-страниц. Однако преимущества установки прокси-сервера выходят за рамки этого: они включают повышенную безопасность, эффективное кэширование, ускорение сетевых запросов и оптимизированное управление соединениями. Раскройте потенциал вашего Raspberry Pi с помощью этого руководства по настройке прокси-сервера Squid.

Убедитесь, что на вашем Raspberry Pi 4 настроен Raspbian (или другая совместимая ОС) и он подключен к Интернету. Получите доступ к терминалу Raspberry Pi через SSH или напрямую с помощью монитора и клавиатуры.
Обновление пакетов: запустите sudo apt-get update и sudo apt-get update, чтобы убедиться, что все пакеты обновлены. Установите Squid. Выполните sudo apt-get install squid. После установки служба Squid должна запуститься автоматически. Создайте резервную копию исходного файла конфигурации: sudo cp /etc/squid/squid.conf /etc/squid/squid.conf.backup. Отредактируйте файл конфигурации: sudo nano /etc/squid/squid.conf.

Вы можете видеть, что строки не закомментированы:
acl localnet src 192.168.1.0/24
http_access allow localnet
Это необходимо для того, чтобы устройства в вашей локальной домашней сети могли подключаться к прокси-серверу. Это очень простая настройка, вы можете поиграть с конфигурацией в этом файле, чтобы отфильтровать, какие IP-адреса и какие параметры сетевой безопасности вы хотите настроить. Перезапустите службу Squid, чтобы применить изменения: sudo systemctl restart squid. Убедитесь, что Squid запущен: sudo systemctl status squid.
Чтобы получить IP-адрес Raspberry Pi, вы можете ввести команду ifconfig в терминале и посмотреть inet-адрес. Вам понадобится этот адрес для использования в скрипте Python на вашем локальном компьютере, который сначала отправит запрос на очистку на IP-адрес Raspberry Pi в качестве прокси.
Создайте скрипт Python на своем локальном компьютере и запустите следующий скрипт, обязательно заменяя свой IP-адрес Pi: https://github.com/shillehbean/youtube-p2/blob/main/test_proxy.py. Этот скрипт предназначен для очистки веб-контента с указанного URL-адреса (в данном случае страницы поиска на eBay для ноутбуков) с использованием библиотеки запросов Python для выполнения HTTP-запросов и библиотеки BeautifulSoup из bs4 для анализа HTML-контента. Скрипт использует прокси-сервер для выполнения запроса. Вот пошаговое объяснение.
- Импорт библиотек: import requests, импортирует библиотеку запросов requests, которая используется для простой отправки HTTP-запросов в Python. from bs4 import BeautifulSoup: импортирует класс BeautifulSoup из библиотеки bs4 (Beautiful Soup). Beautiful Soup используется для анализа документов HTML и XML, что упрощает навигацию, поиск и изменение дерева разбора
- Настройка прокси-серверов: словарь прокси-серверов определяется ключами «http» и «https», каждый из которых содержит URL-адрес прокси-сервера (http://192.168.1.111:3128). Это указывает библиотеке requests маршрутизировать запросы HTTP и HTTPS через прокси-сервер по указанному IP-адресу (192.168.1.111) и порту (3128)
- Укажите целевой URL-адрес: переменная url имеет значение целевого URL-адреса, которым в данном случае является страница поиска eBay для ноутбуков
- Отправить запрос HTTP GET: response = Requests.get(url, proxies=proxies), отправляет запрос HTTP GET на указанный URL-адрес. Используется параметр proxyes, означающий, что запрос будет отправлен через прокси-сервер, определенный ранее
- Проверка статуса ответа: скрипт проверяет, был ли HTTP-запрос успешным, проверяя ответ.status_code. Код состояния HTTP 200 указывает на успех. Если запрос прошел успешно (response.status_code == 200), скрипт приступает к анализу содержимого ответа
- Анализ и вывод HTML-содержимого (в случае успеха): soup = BeautifulSoup(response.content, 'html.parser'): анализирует содержимое HTTP-ответа (response.content) с помощью Beautiful Soup, который создает объект BeautifulSoup (soup). Аргумент «html.parser» указывает используемый синтаксический анализатор. print(soup): выводит проанализированное содержимое HTML на консоль. В более практичном сценарии парсинга вы могли бы использовать функции Beautiful Soup для извлечения конкретных данных из soup (например, названий продуктов, цен и т. д.) вместо вывода всего HTML-содержимого. Обработка неудачного запроса (если не удалось): если HTTP-запрос не был успешным (код состояния не 200), сценарий печатает сообщение, указывающее, что получение веб-страницы не удалось, вместе с полученным кодом состояния HTTP

В реальном сценарии вы, вероятно, захотите добавить больше функций после анализа HTML для извлечения и обработки конкретных данных, которые интересуют вас.
© digitrode.ru