如何写入文本文件Javascript?



我正在尝试将webScrape写入文本文件,但它不起作用。所有的文本文件一遍又一遍地说是对象。任何帮助将不胜感激,我对这种类型的编程相对较新,而且我即将空白!

编辑:我现在有文本文件工作,但我想知道如何在添加每行数据后换行符。

const axios = require('axios');
const cheerio = require('cheerio');
const camelCase = require('camelcase'); // added this for readale properties
const fs = require('fs') 
// use async / await feature
async function scrape(url) {
// get html page
const { data } = await axios.get(url);
// convert html string to cheerio instance
const $ = cheerio.load(data);
// query all list items
return $('.tabular-data-panel > ul')
// convert cheerio collection to array for easier manipulation
.toArray()
// transform each item into proper key values
.map(list => $(list)
// query the label element
.find('.panel-row-title')
// convert to array for easier manipulation
.toArray()
// use reduce to create the object
.reduce((fields, labelElement) => {
// get the cheerio instance of the element
const $labelElement = $(labelElement);
// get the label of the field
const key = $labelElement.text().trim();
// get the value of the field
const value = $labelElement.next().text().trim();
// asign the key value into the reduced object
// note that we used camelCase() to make the property easy to read
fields[camelCase(key)] = value;
// return the object
return fields;
}, {})
);
}
async function main() {
const url = 'https://www.lseg.com/resources/1000-companies-inspire/2018-report-1000-companies-uk/search-1000-companies-uk-2018?results_per_page=100';
const companies = await scrape(url);
fs.writeFile('Output.txt', companies, (err) => { 
if (err) throw err; 
console.log('it/s done')
})
console.log(companies);
}

main();

首先,您可以在此处找到出色的说明: Javascript 如何将数据写入文件

第二次尝试:

fs.writeFile('Output.txt', JSON.stringify(companies), (err) => { 
if (err) throw err; 
console.log('it/s done')
})
console.log(companies);
}

因为您只能将字符串写入文本文件。

函数scrape(url)的结果似乎就像一个数组。 您可以JSON.stringify结果以使其成为字符串。 或者,您也可以只使用join()

// ...
const companies = await scrape(url).then(data => JSON.stringify(data))

const companies = await scrape(url).then(data => data.join('n'))

最新更新