Сервер для парсинга с прокси выполнит всю рутинную работу. Автоматический сбор данных с сайтов становится проще и надёжнее, когда у вас есть правильный парсинг-сервер.
Парсинг данных кажется сложным, но на деле это просто автоматический сбор информации с сайтов. Вместо того чтобы сидеть с блокнотом и вручную копировать данные, можно заставить сервер сделать всю грязную работу. Разберёмся, как настроить VPS для парсинга так, чтобы всё работало быстро, стабильно и без ваших нервов.
Зачем VPS для парсинга
VPS (виртуальный частный сервер) — это удалённый компьютер, который работает круглосуточно и не зависит от вашего личного устройства. Это идеальный инструмент для парсинга, потому что:
- не нужно держать компьютер включённым — парсер работает на сервере, а ваш ноутбук может спокойно отдыхать;
- мощность не ограничена домашним железом — можно взять сервер помощнее и обрабатывать большие объёмы данных;
- можно запускать парсинг по расписанию — всё работает автоматически без вашего участия;
- есть защита от блокировок — если парсер запущен с домашнего IP, сайты могут заподозрить неладное и ограничить доступ. VPS позволяет менять IP-адреса и не привязываться к одному провайдеру.
Выбор VPS для парсинга
Прежде чем разбираться с настройкой, сначала нужен сам сервер. При выборе стоит обратить внимание на три ключевых параметра.
- Процессор и память. Если объёмы информации невелики, хватит и бюджетного VPS с 1–2 ГБ RAM. Если планируется массовый сбор информации, лучше взять сервер с 4 ГБ RAM и хорошим процессором.
- Пропускная способность сети. Парсинг требует постоянных запросов к сайтам. Желательно, чтобы у хостинга не было строгих ограничений на трафик.
- Возможность менять IP. Некоторые сайты отслеживают подозрительную активность и блокируют парсер. Наличие нескольких IP-адресов (или возможность подключать прокси) поможет избежать проблем.
Для решения этой задачи подойдёт провайдер AdminVPS.
Как настроить VPS для парсинга: подключение к серверу
При покупке VPS провайдер выдаст вам IP-адрес, логин и пароль. Чтобы начать работу, вам потребуется терминал. Для пользователей Windows подойдёт программа PuTTY, а владельцы Linux и macOS могут использовать стандартный терминал.
Запустите выбранный терминал (на Windows — PuTTY). Введите команду для подключения по SSH:
ssh root@your-server-ip
При первом подключении система спросит, доверяете ли вы этому серверу. Введите Yes и нажмите Enter. Затем введите пароль, который вам выдал провайдер. При вводе пароля символы не отображаются — это нормально. Если всё прошло успешно, появится командная строка сервера, и можно переходить к следующему шагу.
Устанавливаем Python и нужные модули
Для сбора данных чаще всего применяют Python и такие инструменты, как BeautifulSoup, Scrapy или Selenium. Сначала обновим систему, затем добавим всё, что потребуется.
В командной строке сервера выполните обновление доступных пакетов:
apt update
Для CentOS это:
yum update
Загрузите Python 3 и менеджер пакетов pip:
apt install -y python3 python3-pip
Теперь установим основные пакеты, необходимые для парсинга:
pip3 install requests beautifulsoup4 lxml
Если планируется сложный парсинг, где требуется эмулировать работу браузера (например, загружать страницы с динамическим контентом), понадобится Selenium.
Устанавливаем Selenium:
pip3 install selenium
Для работы Selenium нужен браузер и драйвер. Используем Firefox и Geckodriver:
apt install -y firefox-esr
apt install -y geckodriver
Проверяем установку браузера:
firefox --version
Проверяем работоспособность драйвера:
geckodriver --version
Теперь сервер полностью готов для парсинга, и можно переходить к написанию скриптов.
Настраиваем виртуальное окружение
Чтобы код работал в изолированной среде и не засорял систему, создадим виртуальное окружение. Для этого вернёмся в терминал сервера (если он закрыт, подключаемся заново):
ssh root@your-server-ip
Перейдём в домашнюю папку, чтобы все файлы проекта были в одном месте:
cd ~
Теперь установим менеджер виртуальных окружений:
pip3 install virtualenv
Создадим папку для проекта и зайдём в неё:
mkdir parser && cd parser
В этой папке настраиваем изолированную среду:
virtualenv venv
Запускаем:
source venv/bin/activate
Как только среда будет активирована, в начале командной строки появится префикс venv, это значит, что окружение работает. Теперь все установленные библиотеки будут использоваться только в этом проекте.
Пишем простой парсер
Создадим в папке parser новый файл для парсера. Открываем текстовый редактор nano:
nano parser.py
В открывшемся редакторе вводим код:
import requests
from bs4 import BeautifulSoup
url = "https://example.com"
headers = {"User-Agent": "Mozilla/5.0"}
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, "html.parser")
for item in soup.find_all("h2"):
print(item.text)
Чтобы сохранить файл, нажимаем CTRL+X, затем Y (Yes) и Enter.
Теперь запускаем скрипт:
python3 parser.py
Если всё сделано правильно, появятся заголовки <h2> со страницы. Парсер работает.
Автоматизация и запуск по расписанию
Парсер может работать автоматически, если настроить крон (cron) — планировщик задач в Linux. Открываем редактор командой:
crontab -e
Добавляем строку:
0 * * * * /usr/bin/python3 /root/parser/parser.py
Этот скрипт будет запускаться каждый час.
Борьба с блокировками и антиботами
Некоторые сайты не любят, когда их парсят. Если парсер стал получать ошибки или пустые страницы, значит, включилась защита. Что делать?
- Менять User-Agent. Сервер может блокировать подозрительную активность. Добавляем в заголовки нормальный User-Agent.
- Задействовать прокси. Через сервисы типа BrightData или ProxyScrape можно менять IP.
- Разбавлять интервалы между запросами. Если обращения идут слишком часто, сервер может заподозрить неладное. Добавляем time.sleep(2) перед следующим запросом.
- Эмулировать работу браузера. Если обычный парсинг не проходит, можно использовать Selenium, чтобы имитировать действия пользователя.
Теперь у вас есть VPS, который сам парсит сайты и собирает нужные данные. Не нужно держать компьютер включённым, переживать из-за блокировок или делать всё вручную. Если освоите парсинг на VPS, сможете автоматизировать сбор цен, вакансий, новостей и любой другой информации, которая обновляется на сайтах. Главное — использовать всё это с умом и в рамках закона.
Читайте в блоге:
- Что такое парсинг: простое руководство
- YAML: простота и эффективность в одной строке
- 13 причин превышения допустимой нагрузки на сайт
- От идеи до воплощения: запускаем чат-бота на VPS
- VPS для почтовых рассылок: аренда и настройка виртуального сервера