使用NodeJS下载HTML页面时遇到很多麻烦。这是我的代码片段:
const request = require('request');
request('http://www.google.com', { json: true }, (err, res, body) => {
if (err) {
return console.log(err);
}
console.log(body.url);
console.log(body.explanation);
});

当我单步执行此操作时,它会在大约半秒钟内执行。我没有收到任何错误,但我没有将任何内容记录到控制台......
答案 0 :(得分:1)
这适合我。
const request = require('request')
request('https://google.com', (err, res, body) => console.log(err ? err : body))
通过请求,您可以将请求的响应正文直接传递给WriteableStream
const fs = require('fs')
const request = require('request')
request('https://google.com').pipe(fs.createWriteStream('./google-index.html'))
根据以下评论,以下示例说明如何包装此请求,以便可以等待并打印到屏幕或写入文件。
const {promisify} = require('util')
const fs = require('fs')
const writeFile = promisify(fs.writeFile)
const request = require('request')
const getGoogleIndexHTML = () => {
return new Promise((resolve, reject) => {
request('https://google.com', (err, res, body) => err ? reject(err) : resolve(body))
})
}
const printAndWriteGoogleIndex = async () => {
try {
let googleIndexHTML = await getGoogleIndexHTML()
console.log(googleIndexHTML)
await writeFile('./google-index.html', googleIndexHTML, 'utf8')
console.log('google-index.html written.')
} catch(err) {
console.log(err)
}
}
printAndWriteGoogleIndex()