Как скачать фото с Битрикс, скрытые под заглушкой
При попытке скачать изображения с сайта на CMS 1С-Битрикс через обычный парсер или стороннюю программу нередко сохраняется не оригинальное фото, а заглушка размером 13 КБ. При этом реальный файл весит 1.5 МБ и доступен через браузер при ручном сохранении. В этой инструкции разберём, почему так происходит и как выкачать полноценные снимки массово - до 4000 URL.
Почему парсер скачивает заглушку вместо фото
Битрикс часто использует защиту от прямого доступа к файлам через проверку реферера (HTTP_REFERER) или сессионных ключей. Без корректного заголовка Referer сервер возвращает заглушку. Кроме того, система может генерировать временные ссылки с подписью (signature), которые истекают.
Способы скачивания оригинальных изображений с Битрикс
Способ 1: Подмена HTTP-заголовка Referer
Самый простой метод - при запросе к файлу добавить заголовок Referer: https://everprof.ru/. Это имитирует поведение браузера. Большинство парсеров (например, wget или Python-скрипты) позволяют задать Referer вручную.
Пример для wget:
wget --referer="https://everprof.ru/" "https://everprof.ru/upload/iblock/9ca/cq24bjjv1biufasfuc0i..." -O photo.jpgСпособ 2: Использование сессионных cookies
Если защита основана на авторизации, потребуется передавать cookies. Войдите в браузере на сайт, скопируйте cookies (например, через расширение EditThisCookie) и добавьте их в парсер. На Python это выглядит так:
import requests
cookies = {'PHPSESSID': 'ваш_id_сессии'}
headers = {'Referer': 'https://everprof.ru/'}
resp = requests.get('https://everprof.ru/upload/iblock/9ca/...', headers=headers, cookies=cookies)
with open('photo.jpg', 'wb') as f:
f.write(resp.content)Способ 3: Скачивание через Selenium (эмуляция браузера)
Когда предыдущие методы не помогают, используйте Selenium - он полностью эмулирует работу браузера, включая JavaScript и проверку заголовков. Скрипт открывает каждую страницу с изображением и выполняет сохранение через контекстное меню.
Минус: медленно для 4000 файлов, но гарантирует 100% результат.
Как автоматизировать выкачку 4000 ссылок
- Составьте список URL в текстовом файле (по одному на строку).
- Используйте Python + requests с правильными заголовками (Referer, User-Agent).
- Добавьте задержку между запросами (1-2 секунды), чтобы не получить блокировку.
- Проверяйте размер скачанного файла - если он меньше 50 КБ, скорее всего, это заглушка.
Проверка результата
После скачивания сравните размер файлов. Оригиналы весят 1-2 МБ, заглушки - около 13 КБ. Для массовой проверки напишите небольшой скрипт, который удаляет файлы меньше 50 КБ, и повторите скачивание с другими настройками.