Парсинг изображений с площадки Розетка

Все доброго времени суток. Поделитесь как правильно спарсить все картинки с товара на Розетке. Первая картинка парситься нормально, а все последующие как я понял лежат в таком формате:

{&q;url&q;:&q;https://i2.rozetka.ua/goods/14371712/128962993_images_14371712976.jpg&q;,&q;width&q;:52,&q;height&q;:100},&q;mobile_large&q;:{&q;url&q;:&q;https://i1.rozetka.ua/goods/14371712/128962993_images_14371712955.jpg&q;,&q;width&q;:105,&q;height&q;:200},&q;original&q;:

Как их правильно спарсить. Может у у кого то есть работающий прием


Ответы (2 шт):

Автор решения: mr NAE

Здесь &q; это двойные кавычки " - просто замените их response.replace(/&q;/g, '"'), а затем примените JSON.parse - на выходе готовая сущность, у которой вам нужно взять поле url

var tmp = JSON.parse(response.replace(/&q;/g, '"'));
var imageUrl = tmp.url;

colsole.log(tmp) выдаст что-то такое

{original: {…}, mobile_large: {…}}
original: {url: "https://-------/goods/14371712/128962993_images_14371712976.jpg", width: 52, height: 100}
mobile_large: {url: "https://--------/goods/14371712/128962993_images_14371712955.jpg", width: 105, height: 200}
__proto__: Object

Точнее, как выдаст - выдал бы, если бы ваш пример не содержал битый json. Такое ощущение что это не весь текст. Но на случай такой можно вытащить все url из того что есть:

response.replace(/&q;/g, '"').match(/"url":"[^",}]+/g)

Результат будет массив ссылок:

0: ""url":"https://---------/goods/14371712/128962993_images_14371712976.jpg"
1: ""url":"https://---------/goods/14371712/128962993_images_14371712955.jpg"
length: 2
__proto__: Array(0)

а дальше в каждом элементе выдрать адрес с помощью match(/"url":"([^",}]+)/)[1]

→ Ссылка
Автор решения: Artem Koorochka

Try this. It work me well.

$string = str_replace(["&q;"], '"', $string);
$string = str_replace(["&a;"], "&", $string);
$string = str_replace(["G.https"], "https", $string);
→ Ссылка