瀏覽代碼

adebo set default url if remote failed

guoziyun 3 月之前
父節點
當前提交
20223c57c6
共有 1 個文件被更改,包括 23 次插入18 次删除
  1. 23 18
      parse_metadata.js

+ 23 - 18
parse_metadata.js

@@ -14,7 +14,7 @@ async function processAdobeStock(imageId, html, finalUrl) {
   // 1. 清理 URL 中的地区代码 (如 /hk/)
   const cleanUrl = finalUrl.replace(
     /stock\.adobe\.com\/[a-z]{2}\//i,
-    "stock.adobe.com/"
+    "stock.adobe.com/",
   );
 
   // 2. 提取 Keywords
@@ -89,7 +89,7 @@ async function parseImages(imageDir) {
             height: dimensions.height,
           });
           console.log(
-            `✅ 成功 (静态构造): ${imageId} | URL: https://www.shutterstock.com/image-photo/${imageId}`
+            `✅ 成功 (静态构造): ${imageId} | URL: https://www.shutterstock.com/image-photo/${imageId}`,
           );
 
           // 注意:Shutterstock 无需请求,不需要 sleep
@@ -99,19 +99,26 @@ async function parseImages(imageDir) {
         if (source === "AdobeStock") {
           // AdobeStock 依然需要请求网络以获取标签
           const targetUrl = `https://stock.adobe.com/${imageId}`;
-          const response = await axios.get(targetUrl, {
-            headers: {
-              "User-Agent":
-                "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
-            },
-            timeout: 10000,
-          });
-
-          const meta = await processAdobeStock(
-            imageId,
-            response.data,
-            response.request.res.responseUrl || targetUrl
-          );
+          let meta = { from: targetUrl, tags: [] };
+
+          try {
+            const response = await axios.get(targetUrl, {
+              headers: {
+                "User-Agent":
+                  "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
+              },
+              timeout: 10000,
+            });
+
+            meta = await processAdobeStock(
+              imageId,
+              response.data,
+              response.request.res.responseUrl || targetUrl,
+            );
+            console.log(`✅ 成功: ${imageId} | Tags: [${meta.tags.join(", ")}]`);
+          } catch (parseErr) {
+            console.warn(`⚠️  Adobe 解析失败,使用默认值: ${imageId} | ${parseErr.message}`);
+          }
 
           results.push({
             id: imageId,
@@ -124,10 +131,8 @@ async function parseImages(imageDir) {
             height: dimensions.height,
           });
 
-          console.log(`✅ 成功: ${imageId} | Tags: [${meta.tags.join(", ")}]`);
-
           // Adobe 请求后执行休眠,防止请求过快
-          await sleep(1500);
+          await sleep(2000);
         }
       } catch (err) {
         console.error(`❌ 处理 ${filename} 失败: ${err.message}`);