如何借助Readability在Zapier/IFTTT中实现新闻URL文本提取自动化?
绝对可以!这两个方案都能完美解决你在Zapier/IFTTT里处理多结构新闻URL提取的痛点,我来给你拆解具体怎么做:
方案1:用Readability.js在Zapier中实现
因为Readability依赖浏览器的DOM环境,直接用Node.js代码步骤会踩DOM解析的坑,所以推荐用Zapier的Chrome Browser步骤来完成,流程如下:
- 先搭好Zap的触发环节:比如当你把新闻URL添加到Google Sheets的指定列,或者通过其他方式传入目标URL。
- 添加Chrome Browser by Zapier步骤,选择「Run JavaScript」动作。
- 在代码框里引入Readability.js:
- 如果代码长度允许,直接把Readability的完整代码粘贴进去;
- 若代码太长,可把Readability.js上传到免费CDN(比如GitHub Gist),再通过脚本标签加载:
// 加载Readability脚本 const script = document.createElement('script'); script.src = '你的CDN链接'; document.head.appendChild(script); await new Promise(resolve => script.onload = resolve);
- 编写解析代码提取整洁文本:
// 克隆当前页面DOM避免污染原页面 const docClone = document.cloneNode(true); const reader = new Readability(docClone); const article = reader.parse(); // 输出Zapier可捕获的变量 return { 标题: article.title, 纯文本正文: article.textContent, 结构化HTML内容: article.content }; - 最后把Chrome步骤输出的「纯文本正文」传递给后续的Google Sheets步骤,写入指定单元格即可。
小提示:如果遇到动态加载内容的网站,记得在解析前加个延迟,比如await new Promise(resolve => setTimeout(resolve, 3000));,等页面加载完全再解析。
方案2:调用Mercury Web Parser API
这个方案更省心,不需要折腾JS代码,直接调用专门做网页内容提取的API即可,步骤更简单:
- 先去Mercury官网注册账号,获取专属API密钥。
- 在Zapier里添加Webhooks by Zapier步骤,选择「GET」动作。
- 设置请求URL:
https://mercury.postlight.com/parser?url={{新闻URL变量}},把{{新闻URL变量}}替换成Zap触发环节传入的URL变量。 - 在请求头里添加
x-api-key: 你的Mercury API密钥,确保API能识别你的请求。 - 发送请求后,Mercury会返回结构化JSON,包含
title(标题)、content(纯文本/HTML正文)、excerpt(摘要)等字段。 - 把返回的
content字段传递给Google Sheets步骤,直接写入表格就搞定了。
这个方案的优势是:Mercury已经帮你处理了各种网站的结构差异,还能应对大部分反爬机制,稳定性比自己写JS高很多,适合不想折腾代码的场景。
内容的提问来源于stack exchange,提问作者www.pieronigro.de
相关产品推荐
相关产品推荐

