javascript - 无法保存从 Google-Play-Scraper 返回的应用信息?

标签 javascript node.js

我想根据Google Play中的应用ID(例如com.instagram.android)抓取应用信息。

我使用npm包作为爬虫:https://www.npmjs.com/package/google-play-scraper

我之前没有任何 JavaScript 经验,我不知道如何修改它以达到我的目的。 目前,我无法使用它来抓取应用 ID 列表,并将返回的结果保存为 *.txt 以供进一步分析。

我已经尝试过他们的示例代码,并且运行良好。但我只能看到 .then(console.log, console.log) 返回的结果。如何将结果保存到 .txt 文件???

var gplay = require('google-play-scraper');

gplay.app({appId: 'com.dxco.pandavszombies'})
  .then(console.log, console.log);

我被困在这里,有人可以帮助我解决这个问题吗?我尝试了很多不同的方法来解决这个问题,但它们都不起作用...我真的很困惑如何保存返回到.txt文件的值

我尝试将所有潜在变量保存到 .txt 文件中,仅保存如下信息:

[object]
[object promise]

已保存。

我尝试像这样保存它:

var first = gplay.app({appId: 'com.instagram.android'});
app_result = first.then((result) => console.log(result));

fs.writeFile('App_Result.txt', app_result, (err) =>{
    if (err) throw err;
        console.log('App_Result saved!');
    });

据我了解,这可能是Promise的策略导致的,需要等待Promise解决后才能返回结果。但我不知道如何弄清楚它,因为我对 javascript 真的很陌生。

最佳答案

首先:默认情况下,JavaScript 打印对象非常无用,例如 [Object object] 或类似内容。如果您需要更多信息,请尝试将 console.log 替换为 data => JSON.stringify(data)

其次,由于 Promise 的性质,您必须将另一个 .then 链接到现有代码上。类似的东西

const gplay = require('google-play-scraper');
const fs = require('fs');

const file = fs.createWriteStream('App_Result.txt');

gplay.app({appId: 'com.dxco.pandavszombies'})
  .then(result => JSON.stringify(result))
  .then(text => file.write(text));

关于javascript - 无法保存从 Google-Play-Scraper 返回的应用信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56777833/

相关文章:

javascript - asp.net mvc - 如何使用 Javascript 创建多个 DropDownList

javascript - 在哪里可以找到 StackOverflow 网站的 "First Time here?"JavaScript 组件?

javascript - 为了使用 Gulp 在我的项目中使用 ES6 样式导入,我需要哪些工具?

node.js - 我无法在 ubuntu 20.04 中安装 Nestjs

javascript - 无法在同一类JS的另一个方法中调用方法

node.js - 将 Node.js headless 浏览器与 selenium 混合使用?

javascript - 如何使用 Google Maps API 打开位置的 'native' 信息窗口?

Javascript:将var中的文本解析为一个集合

node.js - 为 child_process.exec 命令清理用户输入

javascript - 通过 Ajax 加载内容,无需哈希