Парсинг на сервере — стандартный шаг для всех, кто перерос запуск скриптов на своём ноутбуке. Пока парсер живёт на домашнем ПК, он зависит от вашего электричества, домашнего интернета и того, не решит ли Windows перезагрузиться ради обновлений в три часа ночи. VPS для парсинга снимает все эти риски: сервер работает 24/7, у него стабильный канал и предсказуемая среда Linux. В этой статье разберём, какие задачи сбора данных вообще стоит автоматизировать, чем сервер объективно лучше домашнего компьютера, сколько ресурсов нужно парсеру и как развернуть рабочее окружение на Ubuntu 24.04 за десять минут.
Сразу о рамках: мы говорим только о легальных сценариях — открытые данные, мониторинг собственных цен и агрегация публичной информации с уважением к robots.txt. Обход защит, сбор персональных данных и создание паразитной нагрузки на чужие сайты — плохая идея и с юридической, и с технической точки зрения.
Какие задачи парсинга легальны и полезны
Автоматический сбор данных — это не «серые схемы», а повседневный рабочий инструмент. Типичные корректные сценарии:
- Открытые государственные данные — реестры, статистика, тендерные площадки с открытым доступом. Многие публикуют данные специально для машинной обработки.
- Мониторинг собственных цен и карточек товаров — вы продаёте на маркетплейсах и проверяете, как отображаются ваши товары, цены и остатки на витрине.
- Контроль своих сайтов — проверка доступности страниц, битых ссылок, корректности микроразметки и скорости ответа.
- Агрегация публичных источников — RSS-ленты, официальные API, открытые каталоги и прайс-листы, которые владельцы сами отдают для распространения.
- Исследования и аналитика — курсы валют, погода, расписания, публичная спортивная статистика.
Общее правило: перед сбором данных проверьте файл robots.txt сайта и пользовательское соглашение. Если у ресурса есть официальный API — используйте его, это надёжнее и честнее, чем разбор HTML.
Почему сервер лучше домашнего ПК: 6 аргументов
Парсер, который должен собирать данные регулярно, на домашней машине живёт плохо. Вот что меняет переезд на VPS:
- Работа 24/7 без вашего участия. Сервер не выключают на ночь, не забирают в поездку и не перезагружают ради игр. Uptime у Cheap-Host — 99,9%.
- Стабильный канал. 100 Мбит/с в дата-центре против домашнего Wi-Fi, который делят телевизор, телефоны и соседи по роутеру.
- Безлимитный трафик. Парсер, который сутками качает страницы, не упрётся в лимиты мобильного или домашнего тарифа.
- Экономия электричества. ПК, работающий круглосуточно ради скрипта, съедает 300–700 ₽ электроэнергии в месяц — дороже, чем целый NAT VPS.
- Изолированная среда. Обновление драйверов, антивирус или переустановка системы на домашней машине не сломают продакшен-парсер. На сервере окружение меняете только вы.
- Linux как родная среда. cron, systemd, логи, виртуальные окружения Python — всё это на сервере работает из коробки, без WSL и костылей.
Отдельный плюс: результаты всегда под рукой. База SQLite или PostgreSQL живёт рядом с парсером на NVMe-диске, а отчёт можно забрать по SSH или настроить отправку в Telegram.
Сколько ресурсов нужно парсеру: подбираем VPS
Требования зависят не от «размера сайта», а от стека. HTTP-запросы и разбор HTML — лёгкая работа; headless-браузер — тяжёлая.
| Стек | RAM | vCPU | Подходящий тариф |
|---|---|---|---|
| requests + BeautifulSoup, 1–2 источника по расписанию | 1–2 ГБ | 1 | NAT Start (59 ₽) / NAT Base (99 ₽) |
| Асинхронный сбор (aiohttp/httpx), очереди, база данных, десятки источников | 4 ГБ | 2 | NAT Pro (199 ₽) |
| Selenium / Playwright, headless-браузер | 8 ГБ | 4 | NAT Plus (349 ₽) или VPS Start (450 ₽) |
Для большинства задач золотая середина — NAT Pro у Cheap-Host: 2 vCPU, 4 ГБ RAM, 25 ГБ NVMe за 199 ₽/мес. Памяти хватает на асинхронный парсер, Redis-очередь и базу, а NVMe-диск ускоряет запись тысяч строк в SQLite или PostgreSQL. Важно понимать про NAT VPS: общий IPv4 — не помеха, ведь парсер сам открывает исходящие соединения, а входящий выделенный IP ему не нужен. Подробнее — в статье что такое NAT VPS и почему он стоит от 59 рублей.
Если планируете рендерить страницы браузером, читайте разбор Selenium и headless-браузер на VPS — там другие требования и своя специфика установки.
Настройка окружения для парсинга на Ubuntu 24.04
Сервер у Cheap-Host выдаётся за 45–60 секунд: после оплаты вы сразу получаете IP и доступ по SSH. Дальше — четыре шага.
Шаг 1. Обновляем систему и ставим Python-инструменты
sudo apt update && sudo apt upgrade -y
sudo apt install -y python3-venv python3-pip git
Шаг 2. Создаём виртуальное окружение
В Ubuntu 24.04 системный Python защищён от установки пакетов напрямую (PEP 668), поэтому работаем через venv:
mkdir ~/parser && cd ~/parser
python3 -m venv venv
source venv/bin/activate
pip install requests beautifulsoup4 lxml
Шаг 3. Пишем аккуратный парсер
Минимальный шаблон, который уважает robots.txt, представляется честным User-Agent и делает паузы между запросами:
import time
import urllib.robotparser
import requests
from bs4 import BeautifulSoup
BASE = "https://example.com"
UA = "MyPriceMonitor/1.0 (+admin@mycompany.ru)"
rp = urllib.robotparser.RobotFileParser()
rp.set_url(BASE + "/robots.txt")
rp.read()
urls = [BASE + "/catalog/item-1", BASE + "/catalog/item-2"]
for url in urls:
if not rp.can_fetch(UA, url):
print("robots.txt запрещает:", url)
continue
r = requests.get(url, headers={"User-Agent": UA}, timeout=15)
r.raise_for_status()
soup = BeautifulSoup(r.text, "lxml")
title = soup.select_one("h1")
print(url, "->", title.get_text(strip=True) if title else "нет заголовка")
time.sleep(3) # пауза, чтобы не нагружать сайт
Шаг 4. Сохраняем результаты
Для старта достаточно SQLite — модуль sqlite3 встроен в Python, а на NVMe-диске запись работает быстро. Когда данных станут гигабайты, переезжайте на PostgreSQL — как его поднять, мы разбирали в статье про PostgreSQL на VPS.
Запуск по расписанию и работа 24/7
Разовый запуск руками — не автоматизация. Есть два основных способа сделать парсер самостоятельным:
- cron — для периодических задач. Например, запуск каждый час:
crontab -e
# добавить строку:
0 * * * * /home/user/parser/venv/bin/python /home/user/parser/main.py >> /home/user/parser/cron.log 2>&1
Подробный разбор синтаксиса — в статье Cron: запуск задач по расписанию на сервере.
- systemd-служба — для парсеров, которые работают постоянно (слушают очередь, держат соединения). systemd перезапустит процесс после сбоя и стартует его при перезагрузке сервера. Пошаговая инструкция — в материале запуск Python-скриптов на сервере 24/7.
Не забудьте про логи: пишите их в файл и настройте ротацию через logrotate, иначе за месяцы работы парсер незаметно съест диск.
Этикет парсинга: как собирать данные и не создавать проблем
Хороший парсер незаметен для сайта-источника. Держите в голове короткий чек-лист:
- Проверяйте
robots.txtи директивуCrawl-delay, если она есть. - Делайте паузы 2–5 секунд между запросами к одному домену, не открывайте десятки параллельных соединений к одному сайту.
- Представляйтесь честным User-Agent с контактом — администратор сайта должен понимать, кто к нему ходит.
- Кешируйте: не скачивайте страницу повторно, если данные обновляются раз в сутки. Используйте заголовки
ETagиLast-Modified. - Запрашивайте только нужные страницы, а не выкачивайте сайт целиком.
- Предпочитайте официальные API и выгрузки, когда они есть.
Такой подход не только этичен — он практичен: аккуратный парсер реже попадает под блокировки и годами работает без внимания владельца.
FAQ
Законен ли парсинг сайтов?
Сбор открытых данных сам по себе не запрещён, но важно соблюдать правила: не обходить технические ограничения, учитывать robots.txt и условия использования сайта, не собирать персональные данные и не мешать работе ресурса. Безопасные сценарии — открытые госданные, мониторинг собственных цен, агрегация публичных RSS и официальных API.
Какой VPS нужен для парсинга?
Для requests + BeautifulSoup хватит 1–2 ГБ RAM. Для асинхронного сбора с базой данных комфортен NAT Pro у Cheap-Host: 2 vCPU, 4 ГБ RAM, 25 ГБ NVMe за 199 ₽/мес. Для headless-браузера берите от 8 ГБ RAM.
Подойдёт ли NAT VPS для парсинга, ведь у него общий IP?
Да. Выделенный IPv4 нужен для приёма входящих соединений, а парсер сам инициирует исходящие запросы. NAT VPS за 59–349 ₽/мес полностью закрывает задачу и экономит бюджет.
Как запускать парсер по расписанию?
Для периодических запусков — cron: одна строка в crontab. Для постоянно работающих процессов — служба systemd с автоперезапуском при сбоях и стартом после перезагрузки сервера.
Что делать, если сайт отдаёт данные только через JavaScript?
Сначала поищите официальный API или JSON-эндпоинты во вкладке Network браузера. Если их нет — понадобится headless-браузер: Chromium с Selenium в режиме --headless=new. Это дороже по ресурсам, планируйте от 8 ГБ RAM.
Вывод
Парсинг на сервере — это стабильность, которую домашний ПК дать не может: круглосуточная работа, безлимитный трафик, канал 100 Мбит/с и среда Linux, где cron и systemd решают вопрос автоматизации парой строк. Начните с лёгкого стека на requests, уважайте robots.txt и источники данных — и парсер будет годами работать без присмотра.
Если для этой задачи вам нужен сервер — у Cheap-Host есть тариф NAT Pro за 199 ₽/мес: 2 vCPU, 4 ГБ RAM, 25 ГБ NVMe, безлимитный трафик и выдача сервера за минуту. Посмотреть все тарифы можно на cheap-host.onl.