如何使用 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 通过 discord webhook 发送图像?