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

_Emma_

Pro Member
Сообщения
56
Реакции
109
Посетить сайт

Использоваться скрипт будем следущим способом: 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");
}
 
  • Like
Реакции: CMDfromBAT
Название темы
Автор Заголовок Раздел Ответы Дата
chubais46 Парсер картинок с Яндекса и Google Софт для работы с текстом/Другой софт 2
JohnWoo Парсер 2GIS 6.0.1.5 (Полностью актуальная версия) Продажа софта 0
iskrakovrov Facebook комбайн. Парсер Facebook. 5 лет на рынке ПО. Бруты/Парсеры/Чекеры 1
E Интересно TeleGram-Scraper: Парсер/Инвайтер/Спаммер Бруты/Парсеры/Чекеры 5
АнАлЬнАя ЧуПаКаБрА Private Keeper [B/C] sportmaster.ua + Парсер баз number:password Проекты Private Keeper 4
Sasha3I8I2 Парсер скриншотов с prnt.sc Раздача email 0
АнАлЬнАя ЧуПаКаБрА [Private Keeper] Igrun брут & чекер by WSN | Парсер баз number:password Проекты Private Keeper 0
Aceki1 [Парсер пользователей BHF.IO] Другие ЯП 4
Forevonly Парсер и чеккер телеграм контактов Бруты/Парсеры/Чекеры 0
Forevonly Парсер и чеккер телеграм контактов Бруты/Парсеры/Чекеры 12
АнАлЬнАя ЧуПаКаБрА Парсер телефонов/логинов скайпа с групп в ВК Бруты/Парсеры/Чекеры 0
NickelBlack Datacol v5.5 RUS Сrack Portable Парсер Бруты/Парсеры/Чекеры 1
adflak Полный спектр услуг: Постинг на форумах \ Ссылки в подписях \ Разоблачение мошенников \ И многое другое! Ищу работу. Предлагаю свои услуги. 2
L Приглашаются дроповоды по ЕС на стабильную работу с высокой оплатой. Предоставляю работу. Ищу специалиста. 2
superman_ddos Service DDOS Attack/ДДОС Атака на заказ. Профессионалы к вашим услугам. Спам / Флуд / Ддос 2
U Интересно Нужны люди из Грузии, Украины и Снг на верифы Предоставляю работу. Ищу специалиста. 0
xoWells Схема на миллион. Забираем свои BTC у жертвы :) Обучения, схемы, мануалы 1
B Bitmoneyekb.com - Обмен криптовалюты на наличные МСК/ЕКБ Обменники 0
Khan Хакер из Бобруйска заработал полмиллиона долларов на брутфорс-атаках Новости в сети 0
B Заливы на карты Предоставляю работу. Ищу специалиста. 0
D Оптовый взлом почты на заказ (цена 20$) Взлом почты Mail.ru Yandex.ru Rambler.ru Ищу работу. Предлагаю свои услуги. 0
Ricardo Milos Продам Сим-карты на физ лиц | МТС | Мегафон | Билайн | Tele2 | Yota | Ростелеком | AIVA Финансы - биллинги, банки, кошельки, логи 0
H Заработок на арбитраже трафика в своем сообществе Вконтакте в 2021м году Способы заработка 0
H 1000$ на продаже сообществ (2021) Способы заработка 0
H Первые деньги на Авито без вложений (2021) Способы заработка 0
H 5000 р в день на трафике (2021) Способы заработка 0
K HASH Bhf.io Дамп на 19gb Раздача email 0
Р Интересно 1000 рублей на Delivery Club HONOR 10X Lite или HUAWEI P smart Способы заработка 0
NickelBlack MIX 587k на btc Раздача email 1
K Актуализируем / прочекаем Ваши телефонные базы на валид Пробив информации/Прозвоны 1
SamBonus ❗️Фотодропы. Фото шаблоны для отрисовки. Идеальное качество, любые комплекты на заказ. Ищу работу. Предлагаю свои услуги. 2
AnanasOfficial Реклама на теневых форумах. Ищу работу. Предлагаю свои услуги. 0
Р Интересно 100 руб на мобильник(нужны сканы) Другое 0
Z Продам лью на германию Финансы - биллинги, банки, кошельки, логи 1
zheka424 Заработок на партнерке банков от 2 000 руб Способы заработка 1
K Софт для наркутки на прямые трансляции youtube + чекер логов Продажа софта 0
B Обмен биткоинов на наличные в Москве Bitkov.net Обменники 0
Р Интересно Бесплатно отправляем СМС на любой номер Другое 2
lisan Чекну ваши базы, на свой банк 50/50 (Brute/Checker) Предоставляю работу. Ищу специалиста. 2
L Продам лью на юр счета украины Финансы - биллинги, банки, кошельки, логи 0
J нужны люди на доставку документов Предоставляю работу. Ищу специалиста. 0
T Дедик на 1 год от Alibaba Раздача dedic/ssh/proxy 0
Y Продам залью на xoom Финансы - биллинги, банки, кошельки, логи 0
A Как зарабатывать от 10$ на просмотре почты!!! Способы заработка 7
A Куплю фейки mail.ru и яндекс с проверкой пароля на валидность. Предоставляю работу. Ищу специалиста. 0
yumpa Развертывание “анонимной цепочки” любой сложности на Hyper-V Анонимность и приватность 1
Gumanoid Выводим с QIWI на карту с МИН комиссией. Полезные статьи 1
H Интересно Как проверить свой браузер на утечку данных Полезные статьи 0
H Как установить macOS на USB-накопитель Полезные статьи 0
H Как просканировать любое устройство на уязвимости? Уязвимости и взлом 1

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