概述
这个n8n工作流自动化了抓取网站站点地图以提取URL的过程,特别适用于SEO分析、网站审计或内容监控。通过利用n8n的节点,工作流从指定的URL获取站点地图,处理XML数据,并提取单个URL,然后可以将其转换为可下载文件或与Google Sheets等工具集成。
工作原理
工作流按顺序运行,利用一系列节点来获取、解析和处理站点地图数据:
- 触发器:当用户点击“测试工作流”时启动(
手动触发器
节点)。 - 设置URL:定义站点地图的基本域名(例如
https://phu.io.vn/
)(设置URL
节点)。 - 抓取站点地图:通过HTTP请求从指定域名获取主站点地图文件(
sitemap.xml
)(抓取站点地图
节点)。 - 解析XML:将站点地图XML转换为JSON格式以便于处理(
XML
节点)。 - 拆分站点地图:从解析的数据中提取单个站点地图条目(例如
<sitemap>
标签)(拆分
节点)。 - 抓取子站点地图:获取主站点地图中列出的每个子站点地图URL(
抓取站点地图2
节点)。 - 解析子站点地图XML:将子站点地图XML转换为JSON(
XML 2
节点)。 - 拆分URL:从子站点地图中提取单个URL(例如
<url>
标签)(拆分2
节点)。 - 转换为文件:将提取的URL保存为文件以供下载或进一步使用(
转换为文件
节点)。
此工作流支持单个站点地图文件和引用多个子站点地图的站点地图索引,确保全面的URL提取。
使用方法
要在n8n中实现此工作流,请按照以下步骤操作:
- 设置n8n:确保您有一个活动的n8n实例(云、npm或自托管)。请参阅n8n文档获取设置说明。
- 导入工作流:从提供的
Extract Website URLs from Sitemap.XML for SEO Analysis.json
文件中复制JSON,并通过工作流编辑器将其导入到您的n8n实例中。 - 配置域名:
- 在
设置URL
节点中,更新域名
参数为目标网站的基本URL(例如https://example.com/
)。 - 或者,在
抓取站点地图
节点中,如果已知,直接粘贴完整的站点地图URL(例如https://example.com/sitemap.xml
)。
- 在
- 测试工作流:
- 点击“测试工作流”以执行
手动触发器
节点。 - 验证工作流是否正确获取站点地图并处理URL。
- 点击“测试工作流”以执行
- 下载或集成:
转换为文件
节点生成包含提取URL的文件。- 可选地,将此节点替换为Google Sheets节点以将URL追加到电子表格中。请参阅Google Sheets节点文档进行设置。
- 保存并激活:保存工作流并根据需要激活它以用于生产环境,使用计划或Webhook等触发器(请参阅触发器节点)。
要求
- n8n实例:活动的n8n实例(建议版本1.0或更高版本)在n8n云、npm或自托管(Docker)上。详情请参阅选择您的n8n。
- 技术知识:对n8n的编辑器UI和节点配置有基本了解。熟悉XML站点地图有帮助但不是必需的。
- 权限:对于自托管设置,确保n8n进程具有网络访问权限以获取站点地图URL。对于Docker部署,请按照n8n v1.0迁移指南验证权限。
- 可选:如果与Google Sheets集成,需要有效的Google Sheets凭据(请参阅凭据)。
- 超时配置:HTTP请求节点(
抓取站点地图
和抓取站点地图2
)具有10秒的超时。如果服务器响应缓慢,请在节点设置中调整超时
参数。
常见问题
问:如果站点地图很大或包含许多子站点地图怎么办?
答:工作流通过拆分并单独处理每个子站点地图来处理站点地图索引。对于非常大的站点地图,请确保您的n8n实例具有足够的资源(内存和CPU)以避免性能问题。请参阅扩展n8n获取优化建议。
问:我可以使用特定的站点地图URL而不是域名吗?
答:可以,在抓取站点地图
节点中,将url
参数({{ $json.Domain }}sitemap.xml
)替换为直接的站点地图URL(例如https://example.com/sitemap.xml
)。更新节点的注释以便清晰。
问:为什么会出现超时错误?
答:HTTP请求节点的默认超时为10秒。如果目标服务器响应缓慢,请在抓取站点地图
或抓取站点地图2
节点的选项
参数中增加超时
值。
问:如何将URL保存到Google Sheets而不是文件?
答:将转换为文件
节点替换为Google Sheets节点。使用您的Google Sheets凭据配置它,并将Split Out 2
节点的loc
字段映射到所需的电子表格列。请参阅Google Sheets节点文档。
问:此工作流是否与旧版n8n兼容?
答:工作流使用与n8n版本1.0及更高版本兼容的节点。对于旧版本,请检查n8n v1.0迁移指南中的弃用功能(例如MySQL支持)。
问:我可以自动化此工作流以定期运行吗?
答:可以,将手动触发器
节点替换为计划触发器
节点以按设定的间隔运行工作流。请参阅触发器节点获取配置详情。
如需进一步帮助,请咨询n8n社区论坛或在n8n GitHub存储库上提交问题。