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

_Emma_

Original poster
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
NoMars Брут/Чекер/Парсер под заказ Ищу работу. Предлагаю свои услуги. 1
Nevsky_Soft TeleGrand - софт для продвижения в Telegram / Рассылка / Парсер / Инвайт Продажа софта 1
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
C Сервис по взлому-услуги хакера-заказать взлом на Заказ в [email protected] - Услуги Хакера. Приветствую участников форума! Станьте королем момента Ищу работу. Предлагаю свои услуги. 0
Walalusur [Алексей Лунин] Как зарабатывать 30000-45000 на продажах партнерских товаров в яндекс директе (2021) Способы заработка 0
fx7support АдминВПС Промокод на скидку 60% - хостинг и VPS. Сайты/Хостинг/Сервера 0
fx7support Наконец-то Разжевали как заработать на Dropplatforma, дропшиппинг. Трафик, загрузки, инсталлы, iframe 0
J Оформлю карты Tinkoff Black на левые данные за 10 мин . цена 3к . Карты/CC/Банки/Enroll 1
NikitaKit $$$Продам брут на сайт,с которого можно вытянуть данные от крипто кошельков$$$ Продажа софта 5
D 120 руб каждый день на пассиве Другое 2
semsvm От 1$ до 50$ в день на полном пассиве [3х уровневая реферальная программа] [Соц.Сети] Способы заработка 4
Sam_Vel Рассылка на форумах и телеграмм чатах/создание и ведение аккаунтов Ищу работу. Предлагаю свои услуги. 1
S Интересно Как зарабатывать на Mobile Rewards. Фея с подарками. Способы заработка 0
L Продам залью на мерч с сс Финансы - биллинги, банки, кошельки, логи 1
proxy-solutions.net Партнерская программа от компании Proxy-Solutions.net. Получайте процент от всех платежей на сайте! Предоставляю работу. Ищу специалиста. 0
W Ключи для ESET, на один месяц ( триал ). Бесконечное количество, бесплатно. Раздача (аккаунтов/ключей) 0
adkins_fan Торговля на бирже Binance, прибыль 10-30% в месяц binancetrade.pro Способы заработка 3
adflak Зарабатывайте крипту на полном автомате 2021 Способы заработка 0
Zer0D4y Интересно Требуются люди на удалённую работу с ежеднеными выплатами Предоставляю работу. Ищу специалиста. 3
balzamos Кидок на 100 $ от JohnWoo Black list и Разборки 3
A Продам криптовалютную онлайн лотерею на блокчейне (startup) Корзина 1
adflak Интересно Expresscrypto на полном автомате - Без вложений - 24 \ 7 Способы заработка 1
D Нужны люди на верификацию Предоставляю работу. Ищу специалиста. 1
S Продам Сим карты Билайн на физ. лица Финансы - биллинги, банки, кошельки, логи 1
MoneyLoad Принимаю заливы на пластик любого направления Ищу работу. Предлагаю свои услуги. 3
balof Seed4.Me VPN - на неограниченный срок Полезные статьи 0
S Интересно нужен вбив на вебкам Предоставляю работу. Ищу специалиста. 1
rdp.onedash Скоростные VPS сервера на Windows — OneDash RDP Сайты/Хостинг/Сервера 1
A Пишем свой RAT на Python > {Часть 1} Уязвимости и взлом 3
mousegreen Быстрый заработок за верификацию на сайте Предоставляю работу. Ищу специалиста. 5
Zer0D4y Заработок на озабоченных Способы заработка 2
Y возьму на обучению вбиву в амазон и ебей Предоставляю работу. Ищу специалиста. 0
Kalash [Розыгрыш] Розыгрыш 1000 рублей на киви!!! Розыгрыши 0
S Простой способ получить реальные $30 на торговлю Предоставляю работу. Ищу специалиста. 1
bu8ba Собственное казино и зарабатываем на нем Способы заработка 2
M Блэк на #~Shinigami~# Black list и Разборки 1
V Схема заработка на SMM партнерках Способы заработка 2
G залью на сша, белоруссию Предоставляю работу. Ищу специалиста. 1
brigabos Как экономить на Яндекс.Директ, Google Ads и соц. сетях. Кешбеки и купоны. Другое 0

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