{"product_id":"verona-rib-ls","title":"Verona Rib LS","description":"\u003cdiv class=\"markdown markdown-main-panel enable-luminous-fast-follows enable-updated-hr-color stronger tutor-markdown-rendering\" id=\"model-response-message-contentr_d935de33268a7141\" aria-busy=\"false\" aria-live=\"polite\" dir=\"ltr\"\u003e\n\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\n\u003cdiv class=\"code-block ng-tns-c427156625-120 ng-trigger ng-trigger-codeBlockRevealAnimation\"\u003e\n\u003c!----\u003e\n\u003cdiv class=\"formatted-code-block-internal-container ng-tns-c427156625-120\"\u003e\n\u003cdiv class=\"animated-opacity ng-tns-c427156625-120\"\u003e\n\u003cdiv class=\"code-block-decoration header-formatted gds-emphasized-body-m ng-tns-c427156625-120 ng-star-inserted\"\u003e\n\u003cspan class=\"ng-tns-c427156625-120\"\u003ePython\u003c\/span\u003e\n\u003cdiv class=\"buttons ng-tns-c427156625-120 ng-star-inserted\"\u003e\n\u003c!----\u003e\u003c!----\u003e\u003cbutton class=\"mdc-icon-button mat-mdc-icon-button mat-mdc-button-base mat-badge mat-unthemed mat-badge-overlap mat-badge-above mat-badge-after mat-badge-small mat-badge-hidden ng-star-inserted\" aria-label=\"Download code\"\u003e\u003cspan class=\"mat-mdc-button-persistent-ripple mdc-icon-button__ripple\"\u003e\u003c\/span\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003cspan class=\"mat-focus-indicator\"\u003e\u003c\/span\u003e\u003cspan class=\"mat-mdc-button-touch-target\"\u003e\u003c\/span\u003e\u003c\/button\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003cbutton class=\"mdc-icon-button mat-mdc-icon-button mat-mdc-button-base mat-badge mat-unthemed mat-badge-overlap mat-badge-above mat-badge-after mat-badge-small mat-badge-hidden ng-star-inserted\" aria-label=\"Copy code\"\u003e\u003cspan class=\"mat-mdc-button-persistent-ripple mdc-icon-button__ripple\"\u003e\u003c\/span\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003cspan class=\"mat-focus-indicator\"\u003e\u003c\/span\u003e\u003cspan class=\"mat-mdc-button-touch-target\"\u003e\u003c\/span\u003e\u003c\/button\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\n\u003c\/div\u003e\n\u003c!----\u003e\u003c!----\u003e\n\u003c\/div\u003e\n\u003c!----\u003e\n\u003cpre class=\"ng-tns-c427156625-120\"\u003e\u003ccode role=\"text\" data-test-id=\"code-content\" class=\"code-container formatted ng-tns-c427156625-120\"\u003e\u003cspan class=\"hljs-keyword\"\u003eimport\u003c\/span\u003e requests\n\u003cspan class=\"hljs-keyword\"\u003efrom\u003c\/span\u003e bs4 \u003cspan class=\"hljs-keyword\"\u003eimport\u003c\/span\u003e BeautifulSoup\n\nurl = \u003cspan class=\"hljs-string\"\u003e\"https:\/\/pro.kuhl.com\/kuhl\/womens\/long-sleeve\/verona-rib-ls\/?color=Natural\"\u003c\/span\u003e\nheaders = {\n    \u003cspan class=\"hljs-string\"\u003e\"User-Agent\"\u003c\/span\u003e: \u003cspan class=\"hljs-string\"\u003e\"Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/115.0.0.0 Safari\/537.36\"\u003c\/span\u003e\n}\n\u003cspan class=\"hljs-keyword\"\u003etry\u003c\/span\u003e:\n    response = requests.get(url, headers=headers)\n    soup = BeautifulSoup(response.text, \u003cspan class=\"hljs-string\"\u003e\"html.parser\"\u003c\/span\u003e)\n    \n    \u003cspan class=\"hljs-comment\"\u003e# Try to find common product description containers\u003c\/span\u003e\n    description_elements = soup.find_all([\u003cspan class=\"hljs-string\"\u003e'div'\u003c\/span\u003e, \u003cspan class=\"hljs-string\"\u003e'ul'\u003c\/span\u003e], class_=\u003cspan class=\"hljs-keyword\"\u003elambda\u003c\/span\u003e c: c \u003cspan class=\"hljs-keyword\"\u003eand\u003c\/span\u003e (\u003cspan class=\"hljs-string\"\u003e'description'\u003c\/span\u003e \u003cspan class=\"hljs-keyword\"\u003ein\u003c\/span\u003e c.lower() \u003cspan class=\"hljs-keyword\"\u003eor\u003c\/span\u003e \u003cspan class=\"hljs-string\"\u003e'features'\u003c\/span\u003e \u003cspan class=\"hljs-keyword\"\u003ein\u003c\/span\u003e c.lower() \u003cspan class=\"hljs-keyword\"\u003eor\u003c\/span\u003e \u003cspan class=\"hljs-string\"\u003e'details'\u003c\/span\u003e \u003cspan class=\"hljs-keyword\"\u003ein\u003c\/span\u003e c.lower()))\n    \n    text = \u003cspan class=\"hljs-string\"\u003e\"\"\u003c\/span\u003e\n    \u003cspan class=\"hljs-keyword\"\u003efor\u003c\/span\u003e el \u003cspan class=\"hljs-keyword\"\u003ein\u003c\/span\u003e description_elements:\n        text += el.get_text(separator=\u003cspan class=\"hljs-string\"\u003e' '\u003c\/span\u003e, strip=\u003cspan class=\"hljs-literal\"\u003eTrue\u003c\/span\u003e) + \u003cspan class=\"hljs-string\"\u003e\"\\n\"\u003c\/span\u003e\n        \n    \u003cspan class=\"hljs-keyword\"\u003eif\u003c\/span\u003e \u003cspan class=\"hljs-keyword\"\u003enot\u003c\/span\u003e text:\n        \u003cspan class=\"hljs-comment\"\u003e# fallback to all text in main content\u003c\/span\u003e\n        main = soup.find(\u003cspan class=\"hljs-string\"\u003e'main'\u003c\/span\u003e)\n        \u003cspan class=\"hljs-keyword\"\u003eif\u003c\/span\u003e main:\n            text = main.get_text(separator=\u003cspan class=\"hljs-string\"\u003e'\\n'\u003c\/span\u003e, strip=\u003cspan class=\"hljs-literal\"\u003eTrue\u003c\/span\u003e)\n            \n    print(text[:\u003cspan class=\"hljs-number\"\u003e2000\u003c\/span\u003e])\n\u003cspan class=\"hljs-keyword\"\u003eexcept\u003c\/span\u003e Exception \u003cspan class=\"hljs-keyword\"\u003eas\u003c\/span\u003e e:\n    print(\u003cspan class=\"hljs-string\"\u003e\"Error:\"\u003c\/span\u003e, e)\n\u003c\/code\u003e\u003c\/pre\u003e\n\u003cdiv class=\"code-block-decoration header gds-title-m ng-tns-c427156625-120 ng-star-inserted\"\u003e\u003cspan class=\"ng-tns-c427156625-120\"\u003eCode output\u003c\/span\u003e\u003c\/div\u003e\n\u003cpre class=\"ng-tns-c427156625-120 ng-star-inserted\"\u003e\u003ccode role=\"text\" data-test-id=\"code-output-stdout-stderr\" class=\"code-result-container ng-tns-c427156625-120\"\u003eTraceback (most recent call last):\n  File \"\u0026lt;xbox-string\u0026gt;\", line 2, in \u0026lt;module\u0026gt;\n    from bs4 import BeautifulSoup\nModuleNotFoundError: No module named 'bs4'\n\n\u003c\/code\u003e\u003c\/pre\u003e\n\u003c!----\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\n\u003cdiv class=\"code-block ng-tns-c427156625-121 ng-trigger ng-trigger-codeBlockRevealAnimation\"\u003e\n\u003c!----\u003e\n\u003cdiv class=\"formatted-code-block-internal-container ng-tns-c427156625-121\"\u003e\n\u003cdiv class=\"animated-opacity ng-tns-c427156625-121\"\u003e\n\u003cdiv class=\"code-block-decoration header-formatted gds-emphasized-body-m ng-tns-c427156625-121 ng-star-inserted\"\u003e\n\u003cspan class=\"ng-tns-c427156625-121\"\u003ePython\u003c\/span\u003e\n\u003cdiv class=\"buttons ng-tns-c427156625-121 ng-star-inserted\"\u003e\n\u003c!----\u003e\u003c!----\u003e\u003cbutton class=\"mdc-icon-button mat-mdc-icon-button mat-mdc-button-base mat-badge mat-unthemed mat-badge-overlap mat-badge-above mat-badge-after mat-badge-small mat-badge-hidden ng-star-inserted\" aria-label=\"Download code\"\u003e\u003cspan class=\"mat-mdc-button-persistent-ripple mdc-icon-button__ripple\"\u003e\u003c\/span\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003cspan class=\"mat-focus-indicator\"\u003e\u003c\/span\u003e\u003cspan class=\"mat-mdc-button-touch-target\"\u003e\u003c\/span\u003e\u003c\/button\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003cbutton class=\"mdc-icon-button mat-mdc-icon-button mat-mdc-button-base mat-badge mat-unthemed mat-badge-overlap mat-badge-above mat-badge-after mat-badge-small mat-badge-hidden ng-star-inserted\" aria-label=\"Copy code\"\u003e\u003cspan class=\"mat-mdc-button-persistent-ripple mdc-icon-button__ripple\"\u003e\u003c\/span\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003cspan class=\"mat-focus-indicator\"\u003e\u003c\/span\u003e\u003cspan class=\"mat-mdc-button-touch-target\"\u003e\u003c\/span\u003e\u003c\/button\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\n\u003c\/div\u003e\n\u003c!----\u003e\u003c!----\u003e\n\u003c\/div\u003e\n\u003c!----\u003e\n\u003cpre class=\"ng-tns-c427156625-121\"\u003e\u003ccode role=\"text\" data-test-id=\"code-content\" class=\"code-container formatted ng-tns-c427156625-121\"\u003e\u003cspan class=\"hljs-keyword\"\u003eimport\u003c\/span\u003e urllib.request\n\u003cspan class=\"hljs-keyword\"\u003eimport\u003c\/span\u003e json\n\u003cspan class=\"hljs-keyword\"\u003eimport\u003c\/span\u003e re\n\nurl = \u003cspan class=\"hljs-string\"\u003e\"https:\/\/pro.kuhl.com\/kuhl\/womens\/long-sleeve\/verona-rib-ls\/?color=Natural\"\u003c\/span\u003e\nreq = urllib.request.Request(url, headers={\u003cspan class=\"hljs-string\"\u003e'User-Agent'\u003c\/span\u003e: \u003cspan class=\"hljs-string\"\u003e'Mozilla\/5.0'\u003c\/span\u003e})\n\u003cspan class=\"hljs-keyword\"\u003etry\u003c\/span\u003e:\n    html = urllib.request.urlopen(req).read().decode(\u003cspan class=\"hljs-string\"\u003e'utf-8'\u003c\/span\u003e)\n    \n    \u003cspan class=\"hljs-comment\"\u003e# Check for __NEXT_DATA__\u003c\/span\u003e\n    match = re.search(\u003cspan class=\"hljs-string\"\u003er'\u0026lt;script id=\"__NEXT_DATA__\" type=\"application\/json\"\u0026gt;(.*?)\u0026lt;\/script\u0026gt;'\u003c\/span\u003e, html, re.DOTALL)\n    \u003cspan class=\"hljs-keyword\"\u003eif\u003c\/span\u003e match:\n        data = json.loads(match.group(\u003cspan class=\"hljs-number\"\u003e1\u003c\/span\u003e))\n        print(\u003cspan class=\"hljs-string\"\u003e\"Found Next.js data. Extracting description...\"\u003c\/span\u003e)\n        \u003cspan class=\"hljs-comment\"\u003e# Since next.js structures vary, let's just dump part of the json string related to description\u003c\/span\u003e\n        json_str = match.group(\u003cspan class=\"hljs-number\"\u003e1\u003c\/span\u003e)\n        desc_match = re.search(\u003cspan class=\"hljs-string\"\u003er'\"description\":\"(.*?)\"'\u003c\/span\u003e, json_str)\n        \u003cspan class=\"hljs-keyword\"\u003eif\u003c\/span\u003e desc_match:\n            print(\u003cspan class=\"hljs-string\"\u003e\"Description:\"\u003c\/span\u003e, desc_match.group(\u003cspan class=\"hljs-number\"\u003e1\u003c\/span\u003e)[:\u003cspan class=\"hljs-number\"\u003e1000\u003c\/span\u003e])\n        \n        \u003cspan class=\"hljs-comment\"\u003e# also look for features or bullets\u003c\/span\u003e\n        features = re.findall(\u003cspan class=\"hljs-string\"\u003er'\"features\":\\[(.*?)\\]'\u003c\/span\u003e, json_str)\n        \u003cspan class=\"hljs-keyword\"\u003eif\u003c\/span\u003e features:\n            print(\u003cspan class=\"hljs-string\"\u003e\"Features:\"\u003c\/span\u003e, features[\u003cspan class=\"hljs-number\"\u003e0\u003c\/span\u003e][:\u003cspan class=\"hljs-number\"\u003e1000\u003c\/span\u003e])\n            \n        bullets = re.findall(\u003cspan class=\"hljs-string\"\u003er'\"bullet_points\":\\[(.*?)\\]'\u003c\/span\u003e, json_str)\n        \u003cspan class=\"hljs-keyword\"\u003eif\u003c\/span\u003e bullets:\n            print(\u003cspan class=\"hljs-string\"\u003e\"Bullets:\"\u003c\/span\u003e, bullets[\u003cspan class=\"hljs-number\"\u003e0\u003c\/span\u003e][:\u003cspan class=\"hljs-number\"\u003e1000\u003c\/span\u003e])\n            \n    \u003cspan class=\"hljs-keyword\"\u003eelse\u003c\/span\u003e:\n        print(\u003cspan class=\"hljs-string\"\u003e\"No next data. Looking for basic meta description.\"\u003c\/span\u003e)\n        meta_desc = re.search(\u003cspan class=\"hljs-string\"\u003er'\u0026lt;meta name=\"description\" content=\"(.*?)\"'\u003c\/span\u003e, html)\n        \u003cspan class=\"hljs-keyword\"\u003eif\u003c\/span\u003e meta_desc:\n            print(meta_desc.group(\u003cspan class=\"hljs-number\"\u003e1\u003c\/span\u003e))\n            \n\u003cspan class=\"hljs-keyword\"\u003eexcept\u003c\/span\u003e Exception \u003cspan class=\"hljs-keyword\"\u003eas\u003c\/span\u003e e:\n    print(\u003cspan class=\"hljs-string\"\u003e\"Error:\"\u003c\/span\u003e, e)\n\u003c\/code\u003e\u003c\/pre\u003e\n\u003cdiv class=\"code-block-decoration header gds-title-m ng-tns-c427156625-121 ng-star-inserted\"\u003e\u003cspan class=\"ng-tns-c427156625-121\"\u003eCode output\u003c\/span\u003e\u003c\/div\u003e\n\u003cpre class=\"ng-tns-c427156625-121 ng-star-inserted\"\u003e\u003ccode role=\"text\" data-test-id=\"code-output-stdout-stderr\" class=\"code-result-container ng-tns-c427156625-121\"\u003eError: \u0026lt;urlopen error [Errno -3] Temporary failure in name resolution\u0026gt;\n\n\u003c\/code\u003e\u003c\/pre\u003e\n\u003c!----\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\u003c!----\u003e\n\u003cp data-path-to-node=\"4\"\u003eEveryday comfort meets elevated casual style. Worn beautifully on its own or as a foundational layering piece, the KÜHL Verona™ Rib Long Sleeve shirt is your go-to staple for cool-weather versatility. Crafted from an incredibly soft, breathable ribbed knit blend, this top combines a sleek mock neck design with a flattering, feminine fit that transitions seamlessly from crisp daytime outings to cozy evenings indoors.\u003c\/p\u003e\n\u003cul data-path-to-node=\"5\"\u003e\n\u003cli\u003e\n\u003cp data-path-to-node=\"5,0,0\"\u003e\u003cb data-path-to-node=\"5,0,0\" data-index-in-node=\"0\"\u003eMade from a premium, ultra-soft cotton blend\u003c\/b\u003e ribbed fabric with built-in stretch for superior all-day comfort\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cp data-path-to-node=\"5,1,0\"\u003e\u003cb data-path-to-node=\"5,1,0\" data-index-in-node=\"0\"\u003eFeatures a stylish, clean mock neck design\u003c\/b\u003e that provides subtle warmth and an elevated, sophisticated look\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cp data-path-to-node=\"5,2,0\"\u003e\u003cb data-path-to-node=\"5,2,0\" data-index-in-node=\"0\"\u003eHighly breathable and moisture-wicking properties\u003c\/b\u003e ensure optimal temperature regulation and quick-drying performance\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cp data-path-to-node=\"5,3,0\"\u003e\u003cb data-path-to-node=\"5,3,0\" data-index-in-node=\"0\"\u003eStreamlined, flattering silhouette\u003c\/b\u003e makes it an ideal, low-bulk foundational piece for effortless layering under jackets, vests, or heavy flannels\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cp data-path-to-node=\"5,4,0\"\u003e\u003cb data-path-to-node=\"5,4,0\" data-index-in-node=\"0\"\u003eFinished with a classic straight bottom hem\u003c\/b\u003e that looks polished and put-together whether worn tucked or untucked\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cp data-path-to-node=\"5,5,0\"\u003e\u003cb data-path-to-node=\"5,5,0\" data-index-in-node=\"0\"\u003eSubtle heathered appearance and textured ribbing\u003c\/b\u003e add stylish depth to a classic, everyday wardrobe essential\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cp data-path-to-node=\"5,6,0\"\u003e\u003cb data-path-to-node=\"5,6,0\" data-index-in-node=\"0\"\u003eVersatile, low-maintenance design\u003c\/b\u003e pairs easily with technical trail pants, active leggings, or your favorite everyday denim\u003c\/p\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e","brand":"Kuhl","offers":[{"title":"SOFT PINE \/ XL","offer_id":49016468472103,"sku":"8533-SFP-XL","price":22.5,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0752\/1989\/4567\/files\/8533_VeronaRibLS_Softpine_Front_large_e3c8b4af-62aa-4428-9f55-51c01d220fc7.jpg?v=1778264849","url":"https:\/\/elementsoutfitters.ca\/products\/verona-rib-ls","provider":"Elements Outfitters","version":"1.0","type":"link"}