Как скачать фото с Битрикс, скрытые под заглушкой

    При попытке скачать изображения с сайта на 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 КБ, и повторите скачивание с другими настройками.

    Часто задаваемые вопросы