无论如何,我可以在 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 发送 HTTP/2.0 请求

如何使用pkg在Node.js程序中获取程序的当前目录?

如何在 Node.js 中获取当前日期和微秒的时间戳? [复制]

如何使用 Node.js 将 JSON 数据从 Node.js 发送和获取到 HTML

Solana - 如何从 JavaScript / Node.js 中的本地密钥对获取帐户?

如何从 Node.js IMAP 模块中的正文获取纯文本