✍️ 博客图片SEO与尺寸审计器(Ghost和Google Sheets)
中级
这是一个AI, Marketing领域的自动化工作流,包含 15 个节点。主要使用 Set, Code, Ghost, HttpRequest, GoogleSheets 等节点,结合人工智能技术实现智能自动化。 ✍️ 博客图片SEO与尺寸审计器(Ghost和Google Sheets)
前置要求
- •可能需要目标 API 的认证凭证
- •Google Sheets API 凭证
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
"meta": {
"instanceId": "",
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "f20cd1d4-671c-420c-a25d-1c9fe05b67d9",
"name": "当点击\"测试工作流\"时",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-1000,
-1030
],
"parameters": {},
"typeVersion": 1
},
{
"id": "edf80cc8-a4b3-42dd-96dc-c729d209aef9",
"name": "提取博客文章",
"type": "n8n-nodes-base.ghost",
"position": [
-780,
-1030
],
"parameters": {
"limit": 1,
"options": {},
"operation": "getAll"
},
"credentials": {
"ghostContentApi": {
"id": "",
"name": ""
}
},
"notesInFlow": true,
"typeVersion": 1
},
{
"id": "b2f0a448-5b73-499a-a78e-e69b75fc8f9d",
"name": "提取文章内容",
"type": "n8n-nodes-base.set",
"position": [
-560,
-1030
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "00b337cd-1c61-4f19-8c51-b76f3a8dece1",
"name": "id",
"type": "string",
"value": "={{ $json.id }}"
},
{
"id": "8d38f4bc-bca6-4343-8c5e-5d9fd9cbe178",
"name": "title",
"type": "string",
"value": "={{ $json.title }}"
},
{
"id": "c34ddd76-0db6-4225-82fa-04d5542f9c7c",
"name": "featured_image",
"type": "string",
"value": "={{ $json.feature_image }}"
},
{
"id": "c0f9593c-0d5a-4659-9e25-91b098318bd6",
"name": "excerpt",
"type": "string",
"value": "={{ $json.excerpt }}"
},
{
"id": "0d11d3d5-49f8-473a-8602-b49769f88005",
"name": "content",
"type": "string",
"value": "={{ $json.html }}"
},
{
"id": "ec89a00d-9d76-4594-a8ce-98aa177e6737",
"name": "link",
"type": "string",
"value": "={{ $json.url }}"
}
]
}
},
"notesInFlow": true,
"typeVersion": 3.4
},
{
"id": "e80bde5d-28c0-4fa7-a7ff-bff0fcddbf94",
"name": "遍历项目",
"type": "n8n-nodes-base.splitInBatches",
"position": [
-360,
-800
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "1052cc12-c1cd-468f-9cf7-33f73ff43642",
"name": "Collect All Images",
"type": "n8n-nodes-base.code",
"position": [
500,
-1300
],
"parameters": {
"jsCode": "const results = [];\n\nfor (const item of items) {\n const articleUrl = item.json.link;\n const articleTitle = item.json.title;\n const articleId = item.json.id;\n const html = item.json.content;\n\n const imgRegex = /<img[^>]*src=\"([^\"]+)\"[^>]*alt=\"([^\"]*)\"?[^>]*>/g;\n let match;\n\n while ((match = imgRegex.exec(html)) !== null) {\n const imageUrl = match[1];\n const altText = match[2];\n\n results.push({\n json: {\n articleId: articleId,\n articleTitle: articleTitle,\n article_url: articleUrl,\n image_url: imageUrl,\n alt_text: altText\n }\n });\n }\n}\n\nreturn results;\n"
},
"typeVersion": 2
},
{
"id": "b2176289-ded3-471c-bc8a-225dacc33aeb",
"name": "Add Records",
"type": "n8n-nodes-base.googleSheets",
"position": [
720,
-1300
],
"parameters": {
"columns": {
"value": {
"alt_text": "={{ $json.alt_text }}",
"articleId": "={{ $json.articleId }}",
"image_url": "={{ $json.image_url }}",
"article_url": "={{ $json.article_url }}",
"articleTitle": "={{ $json.articleTitle }}"
},
"schema": [
{
"id": "articleId",
"type": "string",
"display": true,
"required": false,
"displayName": "articleId",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "articleTitle",
"type": "string",
"display": true,
"required": false,
"displayName": "articleTitle",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "article_url",
"type": "string",
"display": true,
"required": false,
"displayName": "article_url",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "image_url",
"type": "string",
"display": true,
"required": false,
"displayName": "image_url",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "alt_text",
"type": "string",
"display": true,
"required": false,
"displayName": "alt_text",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": 886110184,
"cachedResultUrl": "",
"cachedResultName": ""
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1Nk_2xwvK0ipSjnSbP50AQFc92IlHWaOkSK57-vt_3GY",
"cachedResultUrl": "",
"cachedResultName": ""
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "",
"name": ""
}
},
"notesInFlow": true,
"typeVersion": 4.6
},
{
"id": "cdb245eb-a3e3-45d1-bcce-f1d0ce65297c",
"name": "Collect Records by Id",
"type": "n8n-nodes-base.googleSheets",
"position": [
-140,
-760
],
"parameters": {
"options": {},
"filtersUI": {
"values": [
{
"lookupValue": "={{ $json.id }}",
"lookupColumn": "articleId"
}
]
},
"sheetName": {
"__rl": true,
"mode": "list",
"value": 886110184,
"cachedResultUrl": "",
"cachedResultName": ""
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1Nk_2xwvK0ipSjnSbP50AQFc92IlHWaOkSK57-vt_3GY",
"cachedResultUrl": "",
"cachedResultName": ""
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "ePnaAS4PG1sN2E50",
"name": "Google Sheets LogiGreenBot"
}
},
"notesInFlow": true,
"typeVersion": 4.6
},
{
"id": "dbec4c36-c7e3-49ea-976d-cec6dee70f76",
"name": "遍历项目1",
"type": "n8n-nodes-base.splitInBatches",
"position": [
80,
-760
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "0254622b-3593-4ad8-820c-f6e27e31c53c",
"name": "获取图像",
"type": "n8n-nodes-base.httpRequest",
"position": [
300,
-780
],
"parameters": {
"url": "={{ $json.image_url }}",
"options": {
"response": {
"response": {
"responseFormat": "file"
}
}
}
},
"typeVersion": 4.2
},
{
"id": "bb2a182b-82ae-4263-b3ab-9a7e30a5b97c",
"name": "Extract Image Info",
"type": "n8n-nodes-base.code",
"position": [
520,
-780
],
"parameters": {
"mode": "runOnceForEachItem",
"jsCode": "const base64 = $binary[\"data\"].data;\nconst fileName = $binary[\"data\"].fileName || 'unknown.png';\nconst extension = fileName.split('.').pop().toLowerCase();\nconst fileSizeKB = $binary[\"data\"].fileSize || 'unknown.png';\nconst size_ok = fileSizeKB <= 500 ? true : false;\n\nreturn {\n json: {\n file_name: fileName,\n file_size_kb: fileSizeKB,\n format: extension,\n filename_seo: /[a-z0-9-]{3,}/.test(fileName) ? true : false,\n size_ok: size_ok\n }\n};\n"
},
"typeVersion": 2
},
{
"id": "871e3d19-87c7-4dd6-a481-d83fc652478b",
"name": "Results Images",
"type": "n8n-nodes-base.googleSheets",
"position": [
740,
-680
],
"parameters": {
"columns": {
"value": {
"format": "={{ $json.format }}",
"size_ok": "={{ $json.size_ok }}",
"image_url": "={{ $('Get Image').item.json.image_url }}",
"file_size_kb": "={{ $json.file_size_kb }}",
"filename_seo": "={{ $json.filename_seo }}"
},
"schema": [
{
"id": "articleId",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "articleId",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "articleTitle",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "articleTitle",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "article_url",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "article_url",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "image_url",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "image_url",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "alt_text",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "alt_text",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "file_size_kb",
"type": "string",
"display": true,
"required": false,
"displayName": "file_size_kb",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "format",
"type": "string",
"display": true,
"required": false,
"displayName": "format",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "filename_seo",
"type": "string",
"display": true,
"required": false,
"displayName": "filename_seo",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "size_ok",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "size_ok",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"image_url"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "appendOrUpdate",
"sheetName": {
"__rl": true,
"mode": "list",
"value": 886110184,
"cachedResultUrl": "",
"cachedResultName": ""
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1Nk_2xwvK0ipSjnSbP50AQFc92IlHWaOkSK57-vt_3GY",
"cachedResultUrl": "",
"cachedResultName": ""
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "",
"name": ""
}
},
"notesInFlow": true,
"typeVersion": 4.6
},
{
"id": "ad236989-0707-40ca-885c-c5d5550d7954",
"name": "便签2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-820,
-1380
],
"parameters": {
"color": 7,
"width": 400,
"height": 520,
"content": "### 2. 提取博客文章内容"
},
"typeVersion": 1
},
{
"id": "8d296af6-9e32-4669-bacc-decab229847a",
"name": "便签1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1040,
-1380
],
"parameters": {
"color": 7,
"width": 200,
"height": 520,
"content": "### 1. 工作流触发器"
},
"typeVersion": 1
},
{
"id": "092719b3-65d7-40b8-af99-36cd3f41ea55",
"name": "便签",
"type": "n8n-nodes-base.stickyNote",
"position": [
-400,
-1380
],
"parameters": {
"color": 7,
"width": 1360,
"height": 280,
"content": "### 3. 第一个循环收集图像"
},
"typeVersion": 1
},
{
"id": "71a03b91-fa30-4ede-88f4-f307b5fd7889",
"name": "便签3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-400,
-1080
],
"parameters": {
"color": 7,
"width": 1360,
"height": 620,
"content": "### 4. 第二个循环提取图像信息"
},
"typeVersion": 1
}
],
"pinData": {},
"connections": {
"Get Image": {
"main": [
[
{
"node": "Extract Image Info",
"type": "main",
"index": 0
}
]
]
},
"Add Records": {
"main": [
[
{
"node": "Loop Over Items",
"type": "main",
"index": 0
}
]
]
},
"Results Images": {
"main": [
[
{
"node": "Loop Over Items1",
"type": "main",
"index": 0
},
{
"node": "Loop Over Items",
"type": "main",
"index": 0
}
]
]
},
"Loop Over Items": {
"main": [
[],
[
{
"node": "Collect All Images",
"type": "main",
"index": 0
},
{
"node": "Collect Records by Id",
"type": "main",
"index": 0
}
]
]
},
"Loop Over Items1": {
"main": [
[],
[
{
"node": "Get Image",
"type": "main",
"index": 0
}
]
]
},
"Collect All Images": {
"main": [
[
{
"node": "Add Records",
"type": "main",
"index": 0
}
]
]
},
"Extract Blog Posts": {
"main": [
[
{
"node": "Extract Post Content",
"type": "main",
"index": 0
}
]
]
},
"Extract Image Info": {
"main": [
[
{
"node": "Results Images",
"type": "main",
"index": 0
}
]
]
},
"Extract Post Content": {
"main": [
[
{
"node": "Loop Over Items",
"type": "main",
"index": 0
}
]
]
},
"Collect Records by Id": {
"main": [
[
{
"node": "Loop Over Items1",
"type": "main",
"index": 0
}
]
]
},
"When clicking ‘Test workflow’": {
"main": [
[
{
"node": "Extract Blog Posts",
"type": "main",
"index": 0
}
]
]
}
}
}常见问题
如何使用这个工作流?
复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。
这个工作流适合什么场景?
中级 - 人工智能, 营销
需要付费吗?
本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。
相关工作流推荐
✍️ 使用GPT-4o创建博客推广LinkedIn帖文的AI代理
✍️ 使用GPT-4o创建博客推广LinkedIn帖文的AI代理
Set
Code
Ghost
+7
13 节点Samir Saci
人工智能
🧑🦯使用GPT-4o和Google表格改进网站可访问性
🧑🦯使用GPT-4o和Google表格改进网站可访问性
If
Set
Code
+7
14 节点Samir Saci
产品
🗞️ AI驱动的可持续性营销简报(使用Gmail、GPT-4o)
🗞️ AI驱动的可持续性营销简报(使用Gmail、GPT-4o)
If
Set
Code
+12
21 节点Samir Saci
人工智能
🏤 欧盟事件抓取与 Google Sheets
🏤 使用 Google Sheets 抓取欧盟事件
If
Set
Code
+8
20 节点Samir Saci
人工智能
抓取Meta广告库并使用Gemini分析视频广告,将数据存储到Google Sheets
使用Gemini分析Meta广告库视频广告,并将结果存储到Google Sheets
Set
Code
Sort
+11
24 节点Daniel Setzermann
人工智能
我的工作流5
使用AI邮件个性化的自动化LinkedIn潜在客户生成(未完成)
If
Set
Code
+9
37 节点Matthieu
销售
工作流信息
难度等级
中级
节点数量15
分类2
节点类型8
作者
Samir Saci
@samirsaciAutomation, AI and Analytics for Supply Chain & Business Optimization Helping businesses streamline operations using n8n, AI agents, and data science to enhance efficiency and sustainability. Linkedin: www.linkedin.com/in/samir-saci
外部链接
在 n8n.io 查看 →
分享此工作流