kilir
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Цитата: Все у меня там работает, Цент. | Не работает озон на последнем портативном сент скачанном с сайта. Поменял юзерагент на другой, зашёл на озон, вырубил менялку, сейчас на озон заработало. Могу поделиться улучшенным моим вариантом фильтра для озон (последняя версия из здешнего sieve плюс мои модификации). Будут в большем количестве мест появляться крупные версии медиа: Код: {"OZON.ru":{"link":"^(ozon\\.ru/(?:product/[\\w-]+|context/detail/id/\\d+|t))/.*?(?:\\?|$)","res":":\nconst r = []\ntry {\n if (!$[0].includes('/reviews')) {\n const doc = new DOMParser().parseFromString($._, \"text/html\");\n const title = doc.querySelector('title').textContent;\n\n // product images\n let data = JSON.parse(doc.querySelector('div[id^=\"state-webGallery-\"]').dataset.state);\n data.images?.forEach(i => r.push([i.src, i.alt || title]));\n data.videos?.forEach(v => r.push([v.url, v.name || title]));\n }\n\n // reviews images\n const rUrl = $[0].match(/^(.+?\\/product\\/[\\w-]+)(\\/|$)/)?.[1] + '/reviews/?sort=usefullness_desc';\n const x = new XMLHttpRequest;\n x.open('GET', rUrl, false);\n x.send();\n const data = JSON.parse(x.responseText?.match(/<div id=\"state-webListReviews.+?data-state='(.+?)'/i)[1]);\n\n data.reviews.forEach(f => {\n const c = f.content;\n [...c.photos||[], ...c.videos||[]].forEach(p => {\n const text = ['⭐' + c.score];\n if (c.comment) text.push(c.comment);\n if (c.positive) text.push('👍🏻 ' + c.positive);\n if (c.negative) text.push('👎🏻 ' + c.negative);\n if (f.createdAt) text.push(new Date(f.createdAt*1000).toISOString().substring(0,10))\n r.push([p.url, text.join(' | ')]);\n });\n });\n} catch (e) {\n console.error(e);\n}\n\nlet hasVideo = false;\nr.forEach(item => {\n if (item[0].endsWith('.m3u8')) {\n hasVideo = true;\n item[1] = `<imagus-extension type=\"videojs\" url=\"${item[0]}\"></imagus-extension>${item[1]}`;\n item[0] = '';\n }\n});\nif (hasVideo) {\n this.TRG.IMGS_ext_data = r;\n return { loop: 'imagus://extension' };\n}\n\nreturn r;","img":"((?:ir(?:-\\d)?|cdn\\d)\\.ozone\\.ru/s3/(rp-photo[-\\d+]*|multimedia[-\\w+]*|video[-\\d+]*)/)(?:w[a-z]\\d+/)?(.+\\.jpe?g)","loop":2,"to":":\nif (!this.getImages_original) {\n this.getImages_original = this.getImages;\n this.getImages = (el) => this.getImages_original(el?.firstElementChild?.nodeName == 'IMG' ? el.firstElementChild: el);\n}\n\nif ($[2]?.startsWith('video')) {\n if (!$[2].includes('-')) $[2] += '-7';\n let id = /[0-9A-Z]{20,}/.exec($[0])[0];\n return `https://v.ozone.ru/vod/${$[2]}/${id}/master.m3u8`;\n} else {\n return $[1] + $[3];\n}","note":"hababr + Imagus_fan (edit)\nhttps://www.reddit.com/r/imagus/comments/z0zyox/comment/lw25occ\nOLD\nhttp://forum.ru-board.com/topic.cgi?forum=5&topic=50874&start=2560#4\nhttp://forum.ru-board.com/topic.cgi?forum=5&topic=50874&start=2480#7\nhttp://forum.ru-board.com/topic.cgi?forum=5&topic=50874&start=2238&limit=1&m=1#1\n\n\n!!!\nВ поисковой выдаче фильтр подгружает не только фото товара, но и фото/видео/отзывы сделанные покупателями.\n\n\nПРИМЕРЫ\nhttps://www.ozon.ru/category/noutbuki-15692/\nhttps://www.ozon.ru/search/?deny_category_prediction=true&from_global=true&text=Сетка+антимоскитная+на+дверь&product_id=263132888\nhttps://www.ozon.ru/category/stiralnyy-poroshok-14585/\nвнешние ссылки:\nhttp://forum.ru-board.com/topic.cgi?forum=5&topic=50874&start=1360#11"}} |
| Всего записей: 7 | Зарегистр. 10-06-2021 | Отправлено: 21:05 14-12-2024 | Исправлено: kilir, 23:13 14-12-2024 |
|