【问题标题】:The best way to grab JSON data from website and put it in CSV?从网站获取 JSON 数据并将其放入 CSV 的最佳方法?
【发布时间】:2018-01-07 18:10:21
【问题描述】:

我将此问题标记为“概念性”,因为我不确定创建 Chrome 扩展程序是否是最好的方法。在我看来,最好在花几个小时写东西之前先问清楚,发现某些部分太难或不可能了。

问题 我曾经使用从银行账户下载的 csv 文件来分析我的财务状况。但有时会发生这种情况,我的银行推出了新的 GUI,而 csv 功能消失了。他们根本不知道何时以及是否会这样做。所以我必须以某种方式获取交易并将它们放入 CSV 文件中。

解决方案的概念 我认为用事务处理页面不是一个好方法,因为整个数据看起来像是用完全随机的 CSS 类和 ID 生成的。我注意到 AJAX 响应以 JSON 格式发送交易列表。我分析了JSON,每个感兴趣的字段都有名称,因此访问数据非常容易。我只看到一个问题,第一个 JSON 加载只显示前 10 个事务。要加载更多,我必须向下滚动,然后有下一个 AJAX 请求到相同的 URI,然后下一个 JSON 加载响应。所以,如果我想获得整个月的交易,我必须向下滚动几次,我的工具应该首先捕捉到下一个响应。 我没有使用 Chrome 扩展的经验,但他们声称如果我了解 JS、CSS、HTML 等 Web 技术,编写简单的扩展应该不难。如果我可以从 AJAX 响应中获取这个 JSON 到我的扩展,那么生成 CSV 文件应该不是问题。

问题 主要问题是我的概念是否可以实现。是否可以轻松访问从 AJAX 响应加载的数据?如果您看到任何更好的解决方案,我愿意接受建议。

【问题讨论】:

  • 我猜想访问下 10 个事务可能更容易完全使用 javascript 而不是每次滚动。如果请求是针对相同的 URI,但您获得了接下来的 10 个事务,则可能还会向提供这些指令的服务器发送其他内容。甚至可能有一种方法可以请求特定数量的事务,但无论如何,只要检查正在发送的请求然后在 Chrome 扩展程序中复制它们,就应该不难获得所需的数量。
  • 好点。但我不知道我需要多少交易。这不是关于数量,而是关于日期。我需要关于实际月份的交易。所以我可以得到前 10 个,最后检查是否还有搜索月份。如果是,我可以拿下 10 个并检查。直到我收到一个月的交易,这对我来说并不有趣。我将在这里展示我的结果。

标签: json csv google-chrome google-chrome-extension conceptual


【解决方案1】:

您可以在 DOM 中从 Json 创建 CSV 文件(不需要调用任何 API)。

请参考这个演示链接

jsfiddle.net/hybrid13i/JXrwM/

如果您关心在 chrome 灭绝中实现此功能,那么您需要在 ma​​nifist.json https://developer.chrome.com/extensions/downloads

中添加 download 权限

【讨论】:

  • 谢谢,我会使用它并在这里展示我的结果。
  • 我使用了你的脚本并准备了简单的 PHP 脚本,从我在这个阶段手动输入的数据生成 CSV 文件。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多