如何使用 node-fetch 获取网页?

Posted

技术标签:

【中文标题】如何使用 node-fetch 获取网页?【英文标题】:How do I fetch a webpage with node-fetch? 【发布时间】:2021-11-26 18:53:09 【问题描述】:

以下代码:

import fetch from 'node-fetch'
;(async function fn() 
  const response = await fetch('https://learnitmyway.com/learning-material-software-development/')
  const data = await response.json()
  console.log( data )
)()

结果:UnhandledPromiseRejectionWarning: SyntaxError: Unexpected token < in JSON at position 0

【问题讨论】:

html 不是 JSON,所以 json() 会抛出错误。 这就是我们要审查文档的原因。 developer.mozilla.org/en-US/docs/Web/API/Response/text 或 fetch.spec.whatwg.org/#ref-for-dom-body-text%E2%91%A0 在我看来,不能指望每个开发人员都知道在文档中的哪里可以找到它,尤其是在规范中。 你学习....它就是这样工作的。 22 年前,当我开始工作时,我不得不看书并祈祷我能找到它。它在规范中。这是第二个链接! 您甚至没有阅读常用用法部分吗?它包含两种情况的示例:npmjs.com/package/node-fetch#user-content-common-usageHow much research effort is expected of Stack Overflow users? 至少简短地看一下这些示例。如果这已经太多了,你作为开发人员将很难过。 【参考方案1】:

json 替换为text,如下所示:

import fetch from 'node-fetch'
;(async function fn() 
  const response = await fetch('https://learnitmyway.com/learning-material-software-development/')
  const data = await response.text()
  console.log( data )
)()

【讨论】:

这可能是正确的,但没有像您指出的那样进行研究,也没有向社区添加任何内容。 @epascarello。

以上是关于如何使用 node-fetch 获取网页?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 node-fetch 查看发送的标头?

使用 node-fetch 从 api 嵌入 DnD 咒语

如何使用 node-fetch 通过 discord webhook 发送图像?

如何知道我将被重定向到的 url? [nodejs] [节点获取]

有没有办法记录节点获取请求?

使用 node-fetch 跳过等待时间