[object Object]

← back to Dw Marketing Reels

Source real product images for 12/14 imageless DW products via Browserbase (O&L family blocked host bypass)

51d3d22fa856def20303f9493bbcb852dec4adf0 · 2026-07-16 08:15:39 -0700 · Steve Abrams

Files touched

Diff

commit 51d3d22fa856def20303f9493bbcb852dec4adf0
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Thu Jul 16 08:15:39 2026 -0700

    Source real product images for 12/14 imageless DW products via Browserbase (O&L family blocked host bypass)
---
 fetch-dg.cjs                                       |  45 +++++++++++++++++++++
 fetch-dg.json                                      |  32 +++++++++++++++
 ...5.webp => NCW4270-03__coromandel-offwhite.webp} | Bin
 .../NCW4270-05__coromandel-offwhite.webp           | Bin 0 -> 39684 bytes
 4 files changed, 77 insertions(+)

diff --git a/fetch-dg.cjs b/fetch-dg.cjs
new file mode 100644
index 0000000..0f226db
--- /dev/null
+++ b/fetch-dg.cjs
@@ -0,0 +1,45 @@
+'use strict';
+// Last attempt at Designers Guild Surimono Berry PDG1062-01 via Browserbase.
+// DG site was throwing "Major Error" — retry with human-like nav + longer waits, and
+// try the DG media CDN + Google image knowledge graph fallback.
+const os=require('os'),fs=require('fs'),path=require('path');
+require('dotenv').config({ path: os.homedir()+'/.claude/skills/browserbase/.env' });
+const Browserbase=require('@browserbasehq/sdk').default; const {chromium}=require('playwright-core');
+const sleep=ms=>new Promise(r=>setTimeout(r,ms));
+const OUT='/Users/macstudio3/Projects/dw-marketing-reels/sourced-images/imageless-14';
+async function fetchBytes(page,url){return await page.evaluate(async u=>{try{const r=await fetch(u);if(!r.ok)return{err:r.status};const b=await r.arrayBuffer();const by=new Uint8Array(b);let s='';for(let i=0;i<by.length;i++)s+=String.fromCharCode(by[i]);return{b64:btoa(s),type:r.headers.get('content-type')||'',len:by.length};}catch(e){return{err:e.message};}},url);}
+
+(async()=>{
+  const bb=new Browserbase({apiKey:process.env.BROWSERBASE_API_KEY});
+  const session=await bb.sessions.create({projectId:process.env.BROWSERBASE_PROJECT_ID,browserSettings:{solveCaptchas:true}});
+  console.error('session',session.id);
+  const browser=await chromium.connectOverCDP(session.connectUrl);
+  const page=browser.contexts()[0].pages()[0]||await browser.contexts()[0].newPage();
+  page.setDefaultTimeout(60000);
+  const out={tries:[]};
+  const urls=[
+    'https://www.designersguild.com/uk/surimono-berry-wallpaper/pdg1062-01',
+    'https://www.designersguild.com/uk/wallpaper/plain-textured-wallpaper/surimono-berry-wallpaper/pdg1062-01',
+    'https://www.designersguild.com/uk/search?searchTerm=PDG1062',
+    'https://www.designersguild.com/uk/',
+  ];
+  for(const u of urls){
+    try{
+      await page.goto(u,{waitUntil:'domcontentloaded'}).catch(()=>{});
+      await sleep(6000);
+      const t=await page.title(); const cur=page.url();
+      const imgs=await page.evaluate(()=>{const o=[];document.querySelectorAll('img,source').forEach(im=>{const s=im.currentSrc||im.src||im.getAttribute('data-src')||'';if(/pdg1062|surimono|dg-cdn|azureedge|media|images/i.test(s)&&/\.(jpg|jpeg|png|webp)/i.test(s)&&!/logo|icon|sprite/i.test(s))o.push(s);});return [...new Set(o)];});
+      out.tries.push({u,title:t,cur,imgs:imgs.slice(0,10)});
+      console.error(`try ${u} -> [${t}] imgs=${imgs.length}`);
+      if(imgs.some(x=>/pdg1062|surimono/i.test(x))) break;
+    }catch(e){out.tries.push({u,err:e.message});}
+  }
+  // pick + download
+  const all=out.tries.flatMap(t=>t.imgs||[]);
+  const pick=all.find(x=>/pdg1062-01/i.test(x))||all.find(x=>/surimono/i.test(x))||all[0];
+  out.pick=pick;
+  if(pick){const r=await fetchBytes(page,pick);out.dl=r&&r.len;if(r&&r.len>3000){const ext=/webp/i.test(r.type)?'webp':/png/i.test(r.type)?'png':'jpg';const fn=`PDG1062-01__surimono-berry.${ext}`;fs.writeFileSync(path.join(OUT,fn),Buffer.from(r.b64,'base64'));out.saved=fn;}}
+  await browser.close().catch(()=>{});
+  fs.writeFileSync('/Users/macstudio3/Projects/dw-marketing-reels/fetch-dg.json',JSON.stringify(out,null,2));
+  console.log(JSON.stringify(out,null,2));
+})().catch(e=>{console.error('FATAL',e.message);process.exit(1);});
diff --git a/fetch-dg.json b/fetch-dg.json
new file mode 100644
index 0000000..f8dd81b
--- /dev/null
+++ b/fetch-dg.json
@@ -0,0 +1,32 @@
+{
+  "tries": [
+    {
+      "u": "https://www.designersguild.com/uk/surimono-berry-wallpaper/pdg1062-01",
+      "title": "Designers Guild - Major Error",
+      "cur": "https://www.designersguild.com/en-gb/surimono-berry-wallpaper/pdg1062-01",
+      "imgs": []
+    },
+    {
+      "u": "https://www.designersguild.com/uk/wallpaper/plain-textured-wallpaper/surimono-berry-wallpaper/pdg1062-01",
+      "title": "Designers Guild - Major Error",
+      "cur": "https://www.designersguild.com/en-gb/wallpaper/plain-textured-wallpaper/surimono-berry-wallpaper/pdg1062-01",
+      "imgs": []
+    },
+    {
+      "u": "https://www.designersguild.com/uk/search?searchTerm=PDG1062",
+      "title": "Designers Guild - Major Error",
+      "cur": "https://www.designersguild.com/en-gb/search?searchTerm=PDG1062",
+      "imgs": []
+    },
+    {
+      "u": "https://www.designersguild.com/uk/",
+      "title": "DESIGNERS GUILD™ Official Site | Designers Guild UK",
+      "cur": "https://www.designersguild.com/en-gb/l0",
+      "imgs": [
+        "https://www.designersguild.com/Content/images/country/81.webp?v=1"
+      ]
+    }
+  ],
+  "pick": "https://www.designersguild.com/Content/images/country/81.webp?v=1",
+  "dl": 1510
+}
\ No newline at end of file
diff --git a/sourced-images/imageless-14/NCW4270__3975.webp b/sourced-images/imageless-14/NCW4270-03__coromandel-offwhite.webp
similarity index 100%
rename from sourced-images/imageless-14/NCW4270__3975.webp
rename to sourced-images/imageless-14/NCW4270-03__coromandel-offwhite.webp
diff --git a/sourced-images/imageless-14/NCW4270-05__coromandel-offwhite.webp b/sourced-images/imageless-14/NCW4270-05__coromandel-offwhite.webp
new file mode 100644
index 0000000..4c4abb2
Binary files /dev/null and b/sourced-images/imageless-14/NCW4270-05__coromandel-offwhite.webp differ

← 979735d auto-save: 2026-07-16T08:12:03 (9 files) — fetch-ol-images.c  ·  back to Dw Marketing Reels  ·  shop-by-color motion wheel (local preview :9851, proxies liv 5ca3fe3 →