Download the PHP package verusdev/faker-yandex-images without Composer
On this page you can find all versions of the php package verusdev/faker-yandex-images. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download verusdev/faker-yandex-images
More information about verusdev/faker-yandex-images
Files in verusdev/faker-yandex-images
Package faker-yandex-images
Short Description Faker provider that fills projects with real images found on Yandex.Images by search phrase (e.g. 'bmw x5') — downloads them locally and returns file paths. Ideal for seeding CRM photos.
License MIT
Informations about the package faker-yandex-images
Faker Yandex Images
Провайдер для fakerphp/faker, который заполняет
сиды реальными фотографиями из Яндекс.Картинок по поисковой фразе — например,
"bmw x5" или "фото автомобиля". Идеально подходит для наполнения CRM/каталогов
фотографиями автомобилей, товаров, людей и т.д.
Изображения скачиваются локально в указанную директорию (например, в
storage/app/public/...), провайдер возвращает абсолютные пути к файлам.
Установка
Локальная разработка (path-репозиторий)
Если пакет лежит рядом с проектом:
Через GitHub
Использование
Laravel-фабрика
Сидер: 100 автомобилей одной модели, уникальные фото
Результаты поиска кэшируются по фразе на время жизни провайдера: один поиск
на Яндекс.Картинках (≈30 фото) → 100 записей получают случайные фото из пула,
скачивание происходит только при обращении к каждой записи. Опция unique
(включена по умолчанию) гарантирует, что каждый вызов возвращает новое фото:
пока пул не исчерпан, повторов не будет; после исчерпания история сбрасывается.
Только URL (без скачивания)
API провайдера
| Метод | Описание |
|---|---|
yandexImage(string $query, array $options = []): string |
Скачивает 1 случайное фото, возвращает путь к файлу |
yandexImages(string $query, int $count = 1, array $options = []): list<string> |
Скачивает N уникальных фото |
yandexImageUrl(string $query, array $options = []): string |
Возвращает URL без скачивания |
yandexImageUrls(string $query, int $count = 1, array $options = []): list<string> |
Возвращает N уникальных URL |
Опции
| Опция | По умолчанию | Описание |
|---|---|---|
directory |
sys_get_temp_dir()/faker-yandex-images |
Куда сохранять файлы |
prefix |
slug фразы (например bmw-x5) |
Префикс имени файла: bmw-x5-a3f2c9.jpg |
filename |
— | Полное имя файла (перекрывает prefix) |
random |
true |
Случайная картинка из выдачи; false — по порядку |
unique |
true |
Каждый вызов возвращает новое фото: уже выданные не повторяются, пока пул поиска не исчерпан, затем история сбрасывается. false — повторения допустимы |
pages |
1 |
Сколько страниц выдачи собрать (по ~30 фото) |
perPage |
30 |
Ожидаемое число фото на страницу (Яндекс отдаёт ~30) |
imageSize |
large |
small / medium / large / wallpaper |
imageType |
null |
jpg / png / gif — фильтр по формату |
minWidth, minHeight |
0 |
Отсев мелких изображений |
timeout |
25 |
Таймаут HTTP-запросов (сек) |
Как это работает
- GET
https://yandex.ru/images/search?text=<фраза>&isize=large - Из HTML извлекается JSON-состояние приложения (
data-stateкорневого элемента), декодируются сущности, парситсяinitialState.serpList.items.entities - Для каждой записи выбирается самый крупный URL с CDN Яндекса
(
avatars.mds.yandex.net) — они стабильно доступны, в отличие от оригиналов на сайтах-источниках (те часто отдают 403/таймаут) - Файл скачивается, проверяется сигнатура (JPEG/PNG/GIF/WEBP/BMP),
расширение берётся из
Content-Type
При капче/изменении разметки клиент делает до 3 попыток с повторной загрузкой
страницы, затем бросает RuntimeException с понятным сообщением.
Тесты
Лицензия
MIT. Изображения принадлежат их авторам; используйте в тестовых данных и не публикуйте их как собственные. Для production-контента проверяйте лицензии отдельно.