Интересно Парсер картинок на 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[] = '

Авторизируйтесь или Зарегистрируйтесь что бы просматривать ссылки.

' . $path['path'];
}
}
}
}
}


Создаём функуцию сохранения картинок.
Она принимает массив ссылок и директорию вывода.
function saveImages($imageLinks, $imagesDirectory) {
$extensionPattern = '~(https:\/\/2ch.hk\/[a-z]+\/[a-z]+\/[0-9]+\/[0-9]+)~';
$imageNamePattern = '~(

Авторизируйтесь или Зарегистрируйтесь что бы просматривать ссылки.


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[] = '

Авторизируйтесь или Зарегистрируйтесь что бы просматривать ссылки.

' . $path['path'];
}
}
}
}
}

function saveImages($imageLinks, $imagesDirectory) {
$extensionPattern = '~(https:\/\/2ch.hk\/[a-z]+\/[a-z]+\/[0-9]+\/[0-9]+)~';
$imageNamePattern = '~(

Авторизируйтесь или Зарегистрируйтесь что бы просматривать ссылки.


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
Mr Crabs Продам Telegram парсер участников чата по сообщениям Покупка/Продажа 0
Parser_Pro Бесплатный парсер бот в Телеграм [ Parser Pro ] Готовый софт 7
T ТГ-ПАРСЕР – спарси половину Telegram! Готовый софт 2
semsvm Парсер e-mail по списку сайтов Раздачи и сливы 1
I Facebook комбайн. Парсер Facebook. 5 лет на рынке ПО. Готовый софт 1
E Интересно TeleGram-Scraper: Парсер/Инвайтер/Спаммер Готовый софт 5
E VkSearch — бесплатный парсер пользователей ВК Готовый софт 1
S Парсер скриншотов с prnt.sc Раздачи и сливы 0
G Пишем парсер на Python - грабим Proxy ч.2 Готовый софт 0
G Пишем парсер на Python - грабим Proxy ч.1 Готовый софт 2
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
turbion0 Мошенничество на 11 миллионов рублей: в Красноярске арестовали звезд сборной России по санному спорту Новости в сети 0
Support81 Вы отключали Cloudflare во время сбоя? Срочно проверьте логи на предмет взлома Новости в сети 0
Support81 Этичный хакинг? Забудьте. США готовят рои ИИ-агентов для атаки на Китай Новости в сети 0
Support81 Один взлом — минус ВВП: убытки после атаки на JLR стали главной причиной замедления экономиики Великобритании Новости в сети 0
Support81 Перевод крупной суммы по СБП на свой же счёт будет расцениваться банком как подозрительный Новости в сети 0
Support81 12 из 13 — столько популярных антивирусов (включая ESET, Avast и Касперский) провалили тест на шпионское ПО Новости в сети 0
Support81 Резюме с сюрпризом: хакеры из APT-C-60 массово «устраиваются на работу» в японские компании Новости в сети 0
Support81 Карьера в Тбилиси не задалась. Гражданин ФРГ меняет грузинское гостеприимство на немецкую тюрьму Новости в сети 0
Support81 Хакеры больше не воруют данные — они грабят фуры. Удаленно. На кону $34 миллиарда Новости в сети 0
Support81 Чертежи «Железного луча» на продажу. Хакеры заявили о краже секретных чертежей лазерной системы ПРО Израиля Новости в сети 0
Support81 От домофона до $256 тысяч в сумке. Москвичку обманули на 28 миллионов Новости в сети 1
Support81 Миф об «одноразовом» телефоне: эксперимент на Reddit показал, почему приватности больше не существует Новости в сети 0
Support81 Главы разведки на допросе. Дело о прослушке Paragon Новости в сети 0
Support81 Шифрование — прошлый век: киберпреступники переходят на новую модель вымогательства Новости в сети 0
Support81 «Битва ИИ» на крипторынке. Китайский DeepSeek лидирует, заработав 35%. Новости в сети 0
Support81 «Ага, туннель! Придушим». Ваш VPN тоже лагает на 4G? Объясняем, как операторы видят ваш трафик (и что с этим делать) Новости в сети 0
turbion0 Мошенники похищают аккаунты на «Госуслугах» через объявления Новости в сети 0
Support81 Уязвимость в SMS на смартфоне — и АНБ захватило контроль над временем всего Китая Новости в сети 0
Support81 США конфисковали криптовалюту на сумму 15 миллиардов долларов у главаря «свиного фарма» Новости в сети 0
Red1997 Продам Крипто-Биржа | 9 Языков | Похожая на ByBit Сайты/Хостинг/Сервера 0
Support81 С виду — офис инвестиционной компании. На деле — 80 мошенников с 204 мониторами для обмана жертв Новости в сети 0
Support81 Россия — цель №1 для хакеров. На страну приходится до 72% всех кибератак в СНГ. Новости в сети 0
Support81 56 человек и 1,2 млн сим-карт. Минцифры наткнулось на армию теневых абонентов Новости в сети 0
Support81 На Украине атакована ключевая фигура, стоящая за крупным русскоязычным форумом киберпреступности Новости в сети 1
wrangler65 Атаки на беспроводные сети Уязвимости и взлом 0
Support81 Вредоносное расширение VSCode в Cursor IDE привело к краже криптовалюты на сумму 500 тысяч долларов Новости в сети 0
wrangler65 RemoteWA Охота на пользователей Whatsapp Анонимность и приватность 0
Support81 Национальное агентство по борьбе с преступностью (NCA) Великобритании арестовало четырех человек, подозреваемых в причастности к кибератакам на крупны Новости в сети 0
Support81 Идеальное оружие для киберпреступников: нейросети заставляют вас самих кликать на фишинговые ловушки Новости в сети 0
Support81 Microsoft снова сыграла на руку хакерам — корпоративные сети ломают через официальный софт Новости в сети 0
wrangler65 Повлияет ли введение цифровой валюты Центробанка на кардинг? Полезные статьи 0

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