无论如何,我可以在 node.js 中获取 html 正文
Posted
技术标签:
【中文标题】无论如何,我可以在 node.js 中获取 html 正文【英文标题】:Anyway I can get the html body in node.js 【发布时间】:2014-01-12 08:12:52 【问题描述】:我尝试向 Apache 服务器发送请求并使用返回的正文。
遵循nodejs的手册 http://nodejs.org/api/https.html#https_https_request_options_callback
以及相关的 SO 内容 How to make external HTTP requests with Node.js
我的来源是
callback = function(response)
body='';
console.log('HEADERS: ' + JSON.stringify(response.headers));
response.on('data', function (chunk)
body+= chunk;
);
response.on('end', function ()
console.log(body);
);
我的问题是,这里的body会包含所有的HTML header标签,比如<!DOCTYPE html>
...等,这些是JSON对象无法解析的。因为我在 HTML 正文中的所有数据都是 JSOn,所以我只想获取 HTML 正文。有没有办法实现这个目标?提前致谢。
【问题讨论】:
我很困惑。返回的内容已经只是 HTML,对吧? 响应正文不是 HTML 页面正文。您必须抓取页面以提取 内容,然后 JSON.parse 它。 node.js中有一些用于html查询的包:cherio或jquery。 github.com/MatthewMueller/cheerio @thefourtheye 你是对的,但我正在尝试获取 HTML 的“正文” @vkurchatkin 对不起,这是一个错误。 【参考方案1】:这里我没有给出完整的代码。
您可以使用 htmlparser2
等模块从 HTML 正文 (Online demo for the same
) 中提取数据。
然后您可以使用JSON.parse
将提取的字符串解析为JSON 对象。
【讨论】:
谢谢!我也会试试这个。 @StevenR 这是要走的路。可能有一些基于正则表达式的解决方案,但它们并不可靠。如果你想从 HTML 中提取数据,你只需要解析它。以上是关于无论如何,我可以在 node.js 中获取 html 正文的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Node.js 中获取当前日期和微秒的时间戳? [复制]
如何使用 Node.js 将 JSON 数据从 Node.js 发送和获取到 HTML