Парсинг изображений с площадки Розетка
Все доброго времени суток. Поделитесь как правильно спарсить все картинки с товара на Розетке. Первая картинка парситься нормально, а все последующие как я понял лежат в таком формате:
{&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 шт):
Здесь &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]
Try this. It work me well.
$string = str_replace(["&q;"], '"', $string);
$string = str_replace(["&a;"], "&", $string);
$string = str_replace(["G.https"], "https", $string);