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

Простой скрипт для парсинга картинок с интернет магазина на OpenCart, берем только полные картинки без обрезания

185 php, парсер Aвтор:
Рейтинг: 0/5 - 0 голосов

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

 

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


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

для примера я взял aqva-mania.ru

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

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

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

<?php
use Symfony\Component\DomCrawler\Crawler;
use Symfony\Component\CssSelector\CssSelectorConverter;
require 'autoload.php';

Чтобы проще было загружать содержимое страниц использую CURL.
Написал фунцию для удобства.
 

function curl_content($url){
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; WinNT; en; rv:1.0.2) Gecko/20030311 Beonex/0.8.2-stable');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER ,false);
$html=curl_exec($ch);
return $html;
unset($url);
}

Далее инспектируем элементы на сайте и находим секцию с товарами и блоки с картинками.

Для текущего сайта это будет #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')));
}));

Результатом выполнения будет 

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
)

Так мы получили все картинки товаров с первой страницы!

 

3 случайных Поста

Card image cap
Всплывающее окно с формой при переходе по utm метке
Card image cap
Перевод из доллара в гривну по курсу НБУ в woocommerce
Card image cap
Иконки категорий в меню opencart 2.x

коммент.

Contact

info@pechenki.top

Начать чат со мной

© SiteBlog designer