我想根据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/