如何从rss提要访问选定的元素,例如标题,描述,日期?



我这样做是为了学习目的。我有 RSS 提要的网址,我想进一步工作。此源包含太多信息。我只对所有"项目",它们的"标题","描述"和"pubDate"感兴趣。我正在使用"firebase deploy --only functions",然后检查我希望看到清理数据的部署网址。由于某种原因,我在云函数日志中收到错误:"类型错误:无法读取未定义的属性'通道' at cleanUp (/user_code/lib/index.js:19:29)">

我用另一个令人惊讶的 URL 尝试了这个:https://www.theguardian.com/uk/london/rss

这是我要使用的RSS提要的URL: https://polisen.se/aktuellt/rss/hela-landet/handelser-i-hela-landet/

这是我的清理功能:

function cleanUp(data) {
const items = []
const channel = data.rss.channel
channel.item.forEach(element => {
items.push({
title: element.title,
description: element.description,
date: element.pubDate
})
});
return items
}

我希望在部署后看到所有带有子标题、描述和发布日期的项目。相反,我收到"错误:无法处理请求",当我在谷歌云函数中检查日志时,我看到:

"类型错误: 无法读取未定义的属性'通道' at cleanUp (/user_code/lib/index.js:19:29)">

为此,我建议使用 JSON 对象。所以我所做的是获取 RSS 提要并将其转换为 JSON 对象。然后逐项解析并记录所需的数据。

我已经做了一些自我编码。按照以下步骤了解我的示例,然后根据需要修改代码:

  1. 创建新的谷歌云函数
  2. 触发器:HTTP
  3. 长度:节点.js 8
  4. package.json中添加依赖项:
{
"name": "sample-http",
"version": "0.0.1",
"dependencies": {
"rss-to-json": "^1.0.4"
}
}
  1. >在索引中.js将代码替换为我的 GitHub 代码示例。

我已经自己测试了代码,它使用您提供的链接记录了 200 个项目。基本上,我采用RSS并将其转换为JSON对象。然后,我循环访问所有项目并记录每个项目的属性。

最新更新