axios无法获取数据

问题描述 投票:0回答:1

我在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/

node.js web-scraping axios fetch-api
1个回答
0
投票

正如@Phil在评论中指出的那样,将“内容类型”切换为“接受”可以解决问题。

© www.soinside.com 2019 - 2024. All rights reserved.