Парсим картинки з інтернет-магазину

Блог Фрилансера 2 хвилин 30 секунд 10 лют. 2019
 Парсим картинки з інтернет-магазину

 

Важливо! Весь код представлений з метою ознайомлення!


Для початку потрібно визначиться з якого сайту будемо ширити картинки 

для прикладу я взяв aqva-mania.ru

Для парсингу будемо використовувати Crawler — самодостатній компонет від Symfony.

Для зручності ще підключимо  CssSelector- він допоможе нам шукати по селекторам.

Всі бібліотеки можна підключити через Composer.

Щоб простіше було завантажувати вміст сторінок, використовуючи CURL.
Написав функцію для зручності.
 

Далі перевіряємо елементи на сайті та знаходимо секцію з товарами та блоки з картинками.

Для поточного сайту це буде #content .item .image a img:nth-child(1)- беремо тільки першу картинку тому що друга це стікер знижки товару, він нам не потрібен .

Видаляємо -250x250_0 з кінця url картинок та папку cache — для того, щоб отримати повні картинки, а не обрізані.

$html = curl_content('https://aqva-mania.ru/muzhskaya-parfyumeriya/');

$ Crawler = New Crawler ($ html);
print_r($crawler->filter('#content .item .image a img:nth-child(1)')->each(function(Crawler $link,$i){
  return preg_replace('/-250x250_0/','', str_replace('cache/','',$link->attr('src')));
}));

Результатом виконання буде</nbsp;

Array
(
    [0] => https://aqva-mania.ru/image/data/111/Azzaro-Wanted-Freeride-Collector-EDT-100ML-2-1000x1000.jpg
    [1] => https://aqva-mania.ru/image/data/111/xs.jpg
    [2] => https://aqva-mania.ru/image/data/111/Paco Rabanne Pure XS TESTER.jpg
    [3] => https://aqva-mania.ru/image/data/111/Shaik - Chic Shaik Blue 70.jpg
    [4] => https://aqva-mania.ru/image/data/112/Shaik - Chic Shaik Blue 70.jpg
    [5] => https://aqva-mania.ru/image/data/13..06.16/Yves Saint Laurent La Nuit de L'Homme Eau Electrique.jpg
    [6] => https://aqva-mania.ru/image/data/123/Aj Arabia I.jpg
    [7] => https://aqva-mania.ru/image/data/112/Alexandre J Mandarine Sultane.jpg
    [8] => https://aqva-mania.ru/image/data/112/amouage sunshine men.jpg
    [9] => https://aqva-mania.ru/image/data/112/amouage sunshine men.jpg
    [10] => https://aqva-mania.ru/image/data/product-964/52e90a57b4708.jpg
    [11] => https://aqva-mania.ru/image/data/product-964/52e90a57b4708.jpg
    [12] => https://aqva-mania.ru/image/data/13..06.16/amuirdm_aedp10_01__11.jpg
    [13] => https://aqva-mania.ru/image/data/111/Amouage Interlude Man TESTER.jpg
    [14] => https://aqva-mania.ru/image/data/product-966/amouagememoirmen_2__65946_big.jpg
)

Так ми отримали всі зображення товарів з першої сторінки!