Чтобы получить рабочую ссылку для парсинга товаров вроде курток (jacket) или ламп, недостаточно скопировать адрес из браузерной строки — нужно проверить, содержит ли URL параметры категории, фильтров и пагинации, иначе парсер соберёт неполные или дублирующиеся данные. Базовая проверка проста: откройте страницу каталога, примените нужный фильтр (например, «куртки» → раздел одежды или «лампы» → освещение) и посмотрите, как изменился адрес. Именно этот изменённый URL и будет отправной точкой для сбора данных.
Типичная ошибка новичков — парсить главную страницу категории без учёта того, что товары подгружаются динамически через JavaScript. В таком случае по прямой ссылке сервер отдаёт пустой каркас страницы, а реальные данные приходят отдельным запросом к внутреннему API. Ниже разберём, как правильно сформировать ссылку, проверить её пригодность и автоматизировать обход страниц.
Что такое ссылка для парсинга и чем она отличается от обычного URL
Ссылка для парсинга — это URL, который программа-сборщик запрашивает напрямую, минуя браузер. От обычной адресной строки она может отличаться тем, что ведёт не на HTML-страницу, а на API-эндпоинт, возвращающий данные в формате JSON. Такой формат удобнее: не нужно извлекать текст из вёрстки, структура данных уже готова.
Для товарных категорий вроде курток или ламп ссылка обычно содержит идентификатор категории, параметры сортировки и номер страницы. Например, условная структура может выглядеть так: /catalog?category=jackets&page=2&sort=price. Конкретный вид зависит от платформы — у каждого маркетплейса собственная схема адресов, и её нужно выяснять индивидуально через инструменты разработчика в браузере.
⚠️ Внимание: автоматический сбор данных с сайтов может нарушать условия использования площадки. Перед парсингом проверьте файл robots.txt и пользовательское соглашение конкретного ресурса, а также ограничьте частоту запросов, чтобы не создавать нагрузку на сервер.
Как найти правильный URL категории товара
Начните с ручной навигации: зайдите в каталог маркетплейса, откройте раздел с куртками или лампами и примените нужные фильтры — бренд, ценовой диапазон, наличие. Каждое действие меняет адрес страницы, и эти изменения подсказывают, какие параметры отвечают за фильтрацию.
Дальше откройте инструменты разработчика (клавиша F12 в большинстве браузеров) и перейдите на вкладку Network. Обновите страницу и изучите список запросов. Ищите запросы типа fetch или XHR, которые возвращают JSON со списком товаров — это и есть целевая ссылка для парсинга.
- 🔍 Отфильтруйте запросы по типу
Fetch/XHR, чтобы убрать картинки и стили - 📦 Ищите ответы со структурой, где видны названия товаров, цены и артикулы
- 🔗 Скопируйте URL запроса через правый клик → Copy → Copy as cURL для анализа
- 🧪 Проверьте ссылку в новой вкладке: если открывается JSON или данные — она подходит
Пагинация: как собрать все страницы каталога
Категория «куртки» или «лампы» может содержать сотни товаров, разбитых на десятки страниц. Парсить нужно все, иначе выборка будет неполной. Посмотрите, как меняется URL при переходе на вторую и третью страницу: обычно появляется параметр вида page=2, offset=40 или cursor=....
Два основных типа пагинации: номерная (page=1, 2, 3...) и смещение (offset увеличивается на размер страницы). Встречается и курсорная пагинация, где следующий указатель приходит в ответе сервера — тогда цикл строится на чтении этого поля из каждого ответа.
☑️ Проверка ссылки перед запуском парсинга
Если параметр страницы не виден в адресе, вероятно, подгрузка идёт при прокрутке (бесконечный скролл). В этом случае вам нужно отследить запрос, который отправляется при прокрутке вниз, — он и будет рабочей ссылкой с параметром смещения.
Сравнение подходов: HTML-страница против API
Выбор между парсингом HTML и запросами к API влияет на скорость и стабильность сбора. Таблица ниже помогает сориентироваться, какой вариант подходит под вашу задачу.
| Критерий | Парсинг HTML | Запросы к API |
|---|---|---|
| Скорость обработки | Ниже из-за разбора вёрстки | Выше, данные сразу структурированы |
| Устойчивость к изменениям | Ломается при смене дизайна | Стабильнее, пока не меняется схема API |
| Необходимые инструменты | BeautifulSoup, lxml, селекторы CSS | requests, httpx, обработка JSON |
| Динамическая подгрузка | Может требовать headless-браузер | Обычно работает напрямую |
| Риск блокировки | Выше при эмуляции браузера | Зависит от лимитов конкретного API |
Если сайт отдаёт товары через JSON-API, парсите API, а не HTML — это быстрее, стабильнее и проще в поддержке.
Инструменты и пример базового запроса
Для простых задач достаточно библиотеки requests в Python. Прежде чем писать код, проверьте ссылку вручную — например, через команду curl в терминале. Если ответ содержит данные о товарах, можно переходить к скрипту.
import requests
url = "https://example.com/api/catalog?category=jackets&page=1"
headers = {"User-Agent": "Mozilla/5.0 (учебный пример)"}
response = requests.get(url, headers=headers, timeout=15)
if response.status_code == 200:
data = response.json()
print(data)
else:
print("Код ответа:", response.status_code)
Обратите внимание на заголовок User-Agent: без него часть сайтов отклоняет запросы от скриптов. Однако подделка заголовков для обхода защиты — серая зона, поэтому используйте этот приём только на ресурсах, где сбор данных прямо не запрещён.
Сохраняйте сырые ответы сервера в файлы при отладке. Если парсер сломается, вы сможете повторить разбор без новых запросов к сайту и не создадите лишнюю нагрузку.
Типичные ошибки при формировании ссылки
Самая частая проблема — копирование ссылки с временными токенами или идентификаторами сессии. Такой URL работает несколько минут, а потом возвращает ошибку. Перед использованием уберите из адреса параметры, похожие на одноразовые: длинные случайные строки, session, token, timestamp — и проверьте, продолжает ли ссылка отдавать данные.
Вторая ошибка — игнорирование редиректов. Если короткая ссылка перенаправляет на другой адрес, парсить нужно конечный URL. Проверить цепочку перенаправлений можно командой curl -I -L адрес — флаг -L показывает все переходы.
- 🚫 Парсинг по ссылке из личного кабинета — данные привязаны к аккаунту
- 🔄 Использование URL с устаревшими токенами авторизации
- 📄 Запрос страницы без параметров фильтра — собирается не та категория
- ⏱️ Отсутствие пауз между запросами, что ведёт к временной блокировке IP
⚠️ Внимание: если сайт возвращает код403или429, прекратите запросы и увеличьте интервал между ними. Продолжение интенсивных обращений после отказа может привести к блокировке IP-адреса на длительный срок.
Что делать, если данные грузятся только через JavaScript
Используйте headless-браузер (например, на базе Playwright или Selenium), который выполняет скрипты страницы. Но сначала проверьте вкладку Network — часто оказывается, что можно обратиться к внутреннему API напрямую и обойтись без тяжёлого браузера.
Как проверить, что собранные данные полные
После первого прогона сравните количество собранных товаров с числом, которое показывает сайт в категории (обычно отображается как «найдено N товаров»). Совпадение в пределах малой погрешности — хороший знак. Расхождение означает, что часть страниц не обработана или пагинация работает иначе, чем предполагалось.
Дополнительно проверьте дубликаты по артикулу или ID товара. Повторы появляются, когда диапазоны страниц пересекаются или параметр смещения посчитан неверно. Уникальность по идентификатору — простой и надёжный критерий чистоты выгрузки.
Контрольные метрики парсинга каталога: совпадение числа товаров со счётчиком сайта и отсутствие дубликатов по артикулу.
FAQ: частые вопросы о ссылках для парсинга
Где взять ссылку для парсинга конкретной категории, например курток?
Откройте категорию в браузере, примените фильтры и скопируйте адрес. Затем через вкладку Network в инструментах разработчика найдите запрос, возвращающий список товаров в JSON, — чаще всего именно он является оптимальной ссылкой для парсинга.
Почему по скопированной ссылке открывается пустая страница?
Вероятная причина — данные подгружаются динамически через JavaScript, а сама страница содержит только каркас. Найдите XHR-запрос к внутреннему API или используйте headless-браузер для рендеринга страницы.
Можно ли парсить маркетплейсы без программирования?
Существуют визуальные инструменты и сервисы-парсеры, где ссылка вставляется в интерфейс, а правила извлечения настраиваются кликами. Их возможности ограничены, но для разового сбора по одной категории этого может хватить.
Как понять, что ссылка содержит временный токен?
Если URL перестаёт работать спустя короткое время или после выхода из аккаунта, в нём есть сессионные параметры. Удалите подозрительные фрагменты запроса и проверьте, отдаёт ли ссылка данные в приватном окне браузера.
Какой интервал между запросами считается безопасным?
Универсальной нормы нет — лимиты зависят от конкретной площадки. Начните с паузы в несколько секунд между запросами и сокращайте её только если уверены, что не создаёте заметной нагрузки. При появлении кодов 429 или 403 интервал нужно увеличить.