我在nodejs 中有一个网页抓取。 我正在使用 axios 来获取数据。但由于某种原因,该网站 axios 返回空字符串,但 fetch 有效。 这是我的代码
const response = await axios.get(url, {
responseType: "document",
headers: {
"Content-Type": "text/html",
"User-Agent":
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36",
},
timeout: waitT * 60 * 1000,
});
const $ = cheerio.load(response?.data);
此处回复?.数据为空。
但是当我尝试获取这样的数据时
const r = await fetch(url).then(res => res.text())
console.log(r)
效果很好。
对于大多数网址,这两种方法都有效。我遇到问题的网址是这个
https://aloquence.eu/
正如@Phil在评论中指出的那样,将“内容类型”切换为“接受”可以解决问题。