我正在尝试运行以下 JavaScript 代码。
request = require('request')
request.get('https://www.yahoo.com',function(err,res,body){ console.log(err ? err.message : body) })
但它正在记录二进制数据,而需要 html
字符串。
如果我用不同的网址(如 https://www.google.com
)替换第一个参数,相同的代码将返回 html
响应。
我用以下代码在 ruby 中尝试了相同的操作
require('open-uri')
puts open('https://www.yahoo.com').read
在这两种情况下它都会返回正确的 html 响应。
我想我在使用nodejs的request
包时遗漏了一些东西。
最佳答案
您只会看到 gzip 编码的 html 字符串。使用 gzip
选项 ( docs ) 获取解压后的正文。
request.get({url: 'https://www.yahoo.com', gzip: true}, function(err,res,body){ console.log(err ? err.message : body) })
关于javascript - nodejs - request.get(url) 在 yahoo.com 的情况下返回二进制数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39318182/