Node JS 从文件中插入文本以命名来自 Puppeteer 废料的结果文件
Node JS Insert text from file to name result file from Puppeteer scrap
我正在 Puppeteer 中编写一个节点脚本,我在其中删除了一个网页并将内容保护为一个文本文件,我在该文件中以日期命名该文件并希望在名称末尾添加文本文件中的文本.
const puppeteer = require('puppeteer');
const fs = require('fs');
let utc_date_string = new Date().toLocaleString("en-US", { timeZone: "UTC" });
let date_utc = new Date(utc_date_string);
let year = date_utc.getFullYear();
let month = ("0" + (date_utc.getMonth() + 1)).slice(-2);
let date = ("0" + date_utc.getDate()).slice(-2);
let hours = ("0" + date_utc.getHours()).slice(-2);
let minutes = ("0" + date_utc.getMinutes()).slice(-2);
let time_hh_mm = hours + + minutes;
let data = fs.readFileSync('insert.txt', 'utf8');
(async () => {
const browser = await puppeteer.launch(
{
headless: true,
args: ['--single-process', '--no-zygote', '--no-sandbox']
})
const page = await browser.newPage()
await page.goto('https://example.com/xxx.html')
const myproblem = await page.$eval('table', table => table.innerText)
fs.writeFile('/var/www/mydomain.com/xxx/'+year+'-'+month+'-'+date+'-'+time_hh_mm+'-'+data+'.txt', myproblem)
await browser.close()
})()
目前为止这是可行的,但问题是文件名是这样的
'2022-02-13-1453-test_text_insert'$'\n''.txt'
而不是这样
2022-02-13-1453-test_text_insert.txt
如果我只使用日期,文件名会按预期出现。
我不知道多余的字符是从哪里来的(它们不在文本文件中)或者代码是否有问题。
字符串错误。你应该检查这一行:
let time_hh_mm = hours + + minutes;
也许应该是这样的:(?)
let time_hh_mm = hours + minutes;
并且您尝试读取包含分隔符 \n
的文件,您可以尝试 trim 它。
fs.writeFile('/var/www/mydomain.com/xxx/'+year+'-'+month+'-'+date+'-'+time_hh_mm+'-'+data.trim()+'.txt', myproblem)
我正在 Puppeteer 中编写一个节点脚本,我在其中删除了一个网页并将内容保护为一个文本文件,我在该文件中以日期命名该文件并希望在名称末尾添加文本文件中的文本.
const puppeteer = require('puppeteer');
const fs = require('fs');
let utc_date_string = new Date().toLocaleString("en-US", { timeZone: "UTC" });
let date_utc = new Date(utc_date_string);
let year = date_utc.getFullYear();
let month = ("0" + (date_utc.getMonth() + 1)).slice(-2);
let date = ("0" + date_utc.getDate()).slice(-2);
let hours = ("0" + date_utc.getHours()).slice(-2);
let minutes = ("0" + date_utc.getMinutes()).slice(-2);
let time_hh_mm = hours + + minutes;
let data = fs.readFileSync('insert.txt', 'utf8');
(async () => {
const browser = await puppeteer.launch(
{
headless: true,
args: ['--single-process', '--no-zygote', '--no-sandbox']
})
const page = await browser.newPage()
await page.goto('https://example.com/xxx.html')
const myproblem = await page.$eval('table', table => table.innerText)
fs.writeFile('/var/www/mydomain.com/xxx/'+year+'-'+month+'-'+date+'-'+time_hh_mm+'-'+data+'.txt', myproblem)
await browser.close()
})()
目前为止这是可行的,但问题是文件名是这样的
'2022-02-13-1453-test_text_insert'$'\n''.txt'
而不是这样
2022-02-13-1453-test_text_insert.txt
如果我只使用日期,文件名会按预期出现。 我不知道多余的字符是从哪里来的(它们不在文本文件中)或者代码是否有问题。
字符串错误。你应该检查这一行:
let time_hh_mm = hours + + minutes;
也许应该是这样的:(?)
let time_hh_mm = hours + minutes;
并且您尝试读取包含分隔符 \n
的文件,您可以尝试 trim 它。
fs.writeFile('/var/www/mydomain.com/xxx/'+year+'-'+month+'-'+date+'-'+time_hh_mm+'-'+data.trim()+'.txt', myproblem)