Интересно Парсер картинок на php

E

_Emma_

0ecf1887-d07c-4d1e-ae86-39f43c39e10b.png

Использоваться скрипт будем следущим способом: php parser.php ссылка директория.

Вначале обрабатываем аргументы,всего их 3

1 - ввод имени файла

2 - для ссылки

3 - директория для картинок ( является необязательной )



Меняем конец ссылки на .json для работы с API,а также создаём массив для этих ссылок
$imageLinks = [];

$request = preg_split('~(html)$~', $url, null, PREG_SPLIT_NO_EMPTY);
$result = json_decode(file_get_contents($request[0] . 'json'), true);


Документация находится на сайте php.net также доступна на русском языке
Записываем в массив все ссылки на картинке
$threads = $result['threads'][0];
foreach ($threads as $thread) {
foreach ($thread as $posts) {
foreach ($posts as $key => $value) {
if ($key == 'files') {
foreach ($value as $path) {
$imageLinks[] = 'https://2ch.hk' . $path['path'];
}
}
}
}
}


Создаём функуцию сохранения картинок.
Она принимает массив ссылок и директорию вывода.
function saveImages($imageLinks, $imagesDirectory) {
$extensionPattern = '~(https:\/\/2ch.hk\/[a-z]+\/[a-z]+\/[0-9]+\/[0-9]+)~';
$imageNamePattern = '~(https://2ch.hk/)[a-z]+(/[a-z]+/[0-9]+/)~';
foreach ($imageLinks as $imageLink) {
$imageName = preg_split($imageNamePattern, $imageLink, null, PREG_SPLIT_NO_EMPTY);
$extension = preg_split($extensionPattern, $imageLink, null, PREG_SPLIT_NO_EMPTY);
$imageName = $imageName[0];
$extension = $extension[0];
if ($extension == '.webm' || $extension == '.mp4' || $extension == '.gif') {
print_r($imageName . " will not be saved!\n");
continue;
} else {
file_put_contents(__DIR__ . DIRECTORY_SEPARATOR . $imagesDirectory . DIRECTORY_SEPARATOR . $imageName, file_get_contents($imageLink));
print_r($imageName . " was saved successfully\n");
}
}
}


Объявляем 2 регулярных выражения которые отвечают за расширение картинки а также имени.
if (file_exists($imagesDirectory)) {
saveImages($imageLinks, $imagesDirectory);
print_r("\nJob Done!\n");
} else {
mkdir($imagesDirectory);
saveImages($imageLinks, $imagesDirectory);
print_r("\nJob Done!\n");
}


Весь код
<?php

if (isset($argv[1])) {
$url = $argv[1];
} else {
print_r("Usage: php {$argv[0]} url output_directory(optional)\n");
exit("\n\tExit with status: wrong script usage");
}

if (isset($argv[2])) {
$imagesDirectory = $argv[2];
} else {
$imagesDirectory = 'images';
}

$imageLinks = [];

$request = preg_split('~(html)$~', $url, null, PREG_SPLIT_NO_EMPTY);
$result = json_decode(file_get_contents($request[0] . 'json'), true);

$threads = $result['threads'][0];
foreach ($threads as $thread) {
foreach ($thread as $posts) {
foreach ($posts as $key => $value) {
if ($key == 'files') {
foreach ($value as $path) {
$imageLinks[] = 'https://2ch.hk' . $path['path'];
}
}
}
}
}

function saveImages($imageLinks, $imagesDirectory) {
$extensionPattern = '~(https:\/\/2ch.hk\/[a-z]+\/[a-z]+\/[0-9]+\/[0-9]+)~';
$imageNamePattern = '~(https://2ch.hk/)[a-z]+(/[a-z]+/[0-9]+/)~';
foreach ($imageLinks as $imageLink) {
$imageName = preg_split($imageNamePattern, $imageLink, null, PREG_SPLIT_NO_EMPTY);
$extension = preg_split($extensionPattern, $imageLink, null, PREG_SPLIT_NO_EMPTY);
$imageName = $imageName[0];
$extension = $extension[0];
if ($extension == '.webm' || $extension == '.mp4' || $extension == '.gif') {
print_r($imageName . " will not be saved!\n");
continue;
} else {
file_put_contents(__DIR__ . DIRECTORY_SEPARATOR . $imagesDirectory . DIRECTORY_SEPARATOR . $imageName, file_get_contents($imageLink));
print_r($imageName . " was saved successfully\n");
}
}
}

if (file_exists($imagesDirectory)) {
saveImages($imageLinks, $imagesDirectory);
print_r("\nJob Done!\n");
} else {
mkdir($imagesDirectory);
saveImages($imageLinks, $imagesDirectory);
print_r("\nJob Done!\n");
}
 
Похожие темы
C Парсер картинок с Яндекса и Google Готовый софт 2
Parser_Pro Бесплатный парсер бот в Телеграм [ Parser Pro ] Готовый софт 7
T ТГ-ПАРСЕР – спарси половину Telegram! Готовый софт 2
semsvm Парсер e-mail по списку сайтов Раздачи и сливы 1
I Facebook комбайн. Парсер Facebook. 5 лет на рынке ПО. Готовый софт 1
E Интересно TeleGram-Scraper: Парсер/Инвайтер/Спаммер Готовый софт 5
АнАлЬнАя ЧуПаКаБрА INLINE Переписанный приватный парсер номеров [1 из 13] Готовый софт 1
E VkSearch — бесплатный парсер пользователей ВК Готовый софт 1
АнАлЬнАя ЧуПаКаБрА Private Keeper [B/C] sportmaster.ua + Парсер баз number:password Готовый софт 4
S Парсер скриншотов с prnt.sc Раздачи и сливы 0
G Пишем парсер на Python - грабим Proxy ч.2 Готовый софт 0
G Пишем парсер на Python - грабим Proxy ч.1 Готовый софт 2
АнАлЬнАя ЧуПаКаБрА [Private Keeper] Igrun брут & чекер by WSN | Парсер баз number:password Готовый софт 0
A [Парсер пользователей BHF.IO] Программирование 4
G Парсер и чеккер телеграм контактов Готовый софт 0
G Парсер и чеккер телеграм контактов Готовый софт 12
W SQL Hunter1.2 (парсер для Google и поиск уязвимостей sql) Готовый софт 12
АнАлЬнАя ЧуПаКаБрА Парсер телефонов/логинов скайпа с групп в ВК Готовый софт 0
M Создать софт парсер Свободное общение 1
АнАлЬнАя ЧуПаКаБрА VkSearch — бесплатный парсер пользователей ВК Готовый софт 3
NickelBlack Datacol v5.5 RUS Сrack Portable Парсер Готовый софт 1
Admin Интересно Компания F6 планирует выход на фондовый рынок в 2026 году. Новости в сети 0
Admin Интересно Ставите на Polymarket? Ваши финансы в опасности. Новости в сети 0
Admin Интересно Илон Маск представил новый мессенджер XChat с акцентом на приватность. Новости в сети 0
Admin Интересно Подводные лодки станут невидимыми благодаря ядерным часам на тории-229. Новости в сети 0
Admin Интересно Патч вышел утром, атака – в обед. Добро пожаловать в мир, где у вас нет времени на обновления. Новости в сети 0
Admin Интересно Новый фишинговый обман нацелен на пользователей Apple с угрозами удаления данных iCloud. Новости в сети 0
Admin Интересно Тёмная материя где-то рядом: физики опустились на 2 км под землю и охладили установку до края возможного. Новости в сети 0
Admin Интересно Батарейка на ядерном распаде обещает работать 100 лет без замены. Новости в сети 0
Admin Интересно Китайская компания Unitree выводит на рынок доступного робота R1 через AliExpress. Новости в сети 0
Admin Интересно Генетики изучили ДНК на Туринской плащанице, но результаты вызвали больше вопросов, чем ответов. Новости в сети 0
Admin Интересно Экипаж Artemis II успешно вернулся на Землю после лунной миссии. Новости в сети 0
Admin Интересно OpenAI приостанавливает строительство супер дата-центра в Великобритании из-за высоких затрат на электроэнергию. Новости в сети 0
Admin Интересно Два криптографа поспорили на $5000: что сломается первым — старая защита интернета или новая. Новости в сети 0
Admin Интересно Атака вымогателей на ChipSoft нарушила работу электронных медицинских карт в Нидерландах и Бельгии. Новости в сети 0
Admin Интересно Северокорейский хакер случайно раскрыл схему мошенничества на миллионы долларов. Новости в сети 0
Admin Интересно Ubuntu просит 6 ГБ, Windows 11 — 4 ГБ. Что это значит на самом деле — и кто из них честнее с пользователем. Новости в сети 0
Admin Интересно Утечка данных в облаке Еврокомиссии связана с атакой на цепочку поставок Trivy. Новости в сети 0
Admin Интересно Искусственный интеллект может улучшить продажи на платформах вроде Vinted и Depop. Новости в сети 0
Admin Интересно Microsoft раскрыла детали использования cookie для управления PHP-веб-шеллами на Linux-серверах. Новости в сети 0
Admin Интересно Утечка данных Forex вызывает опасения мошенничества и манипуляций на рынке. Новости в сети 0
Admin Интересно Минцифры обсуждает масштабную реформу связи и снятие моратория на проверки операторов. Новости в сети 0
Admin Интересно Социальная инженерия привела к атаке на npm-пакет Axios. Новости в сети 0
Admin Интересно Amazon обязана вести переговоры с профсоюзом работников склада на Статен-Айленде. Новости в сети 0
Admin Интересно Установили бесплатный Photoshop? Добро пожаловать в майнинг-клуб на вашем Mac. Новости в сети 0
Admin Интересно Кибератака на больницу в Техасе привела к утечке данных 257 тысяч пациентов. Новости в сети 0
Admin Интересно Google представила мощную ИИ-модель Gemma 4, которая работает даже на слабом железе. Новости в сети 0
Admin Интересно Полиция действительно может проверить ваш телефон на наличие VPN? Отвечает МВД. Новости в сети 0
Admin Интересно Piter-IX повышает цены на услуги из-за роста затрат и блокировок. Новости в сети 0
Admin Интересно Компания Hasbro сообщила о кибератаке, которая вывела системы из строя на несколько недель. Новости в сети 0

Название темы