- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我用 Cheerio 解析我的请求,如下所示:
var url = http://shop.nag.ru/catalog/16939.IP-videonablyudenie-OMNY/16944.IP-kamery-OMNY-c-vario-obektivom/16704.OMNY-1000-PRO;
request.get(url, function (err, response, body) {
console.log(body);
$ = cheerio.load(body);
console.log($(".description").html());
});
作为输出,我看到了内容,但使用了不可读的奇怪编码:
//Plain body console.log(body) (p.s. russian chars):
<h1><span style="font-size: 16px;">Уличная 3Мп IP HD камера OMNY - попробуйте найти лучше</span></h1><p style
// cheerio's console.log $(".description").html()
<h1><span style="font-size: 16px;">Уличная 3Мп IP HD камера OMNY
目标网址链接编码为 UTF-8 格式。那么为什么 Cheerio 会破坏我的编码呢?
尝试使用 iconv 来编码我的 body react :
var body1 = iconv.decode(body, "utf-8");
但是 console.log($(".description").html());
仍然返回奇怪的文本。
最佳答案
Cheerio 没有破坏任何东西。它正在输出 HTML entities ,它将被任何浏览器呈现与 HTML 输入完全相同。运行此代码段以了解我的意思:
<h1><span style="font-size: 16px;">Уличная 3Мп IP HD камера OMNY - попробуйте найти лучше</span></h1>
<h1><span style="font-size: 16px;">Уличная 3Мп IP HD камера OMNY - попробуйте найти лучше</span></h1>
У
是将字符 У
编码为 HTML 实体,与实体 >
的方式相同代表>
。
但是,如果要获取未编码的文本,可以将 decodeEntities
选项设置为 false
:
const $ = cheerio.load(
`<h1><span style="font-size: 16px;">Уличная 3Мп IP HD камера OMNY - попробуйте найти лучше</span></h1>`,
{ decodeEntities: false }
);
console.log($('span').html())
// => Уличная 3Мп IP HD камера OMNY - попробуйте найти лучше
.as-console-wrapper{min-height:100%}
<script src="https://bundle.run/cheerio@1.0.0-rc.3"></script>
关于Node.js Cheerio 解析器破坏了 UTF-8 编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31574127/
我有一个 cheerio 对象: const $ = cheerio.load('') 这是一个简单的例子,但要复杂得多。 我需要克隆它,这样我就可以在不影响它的情况下用它做不同的事情。 这是我目前所
在 Cheerio 中,如何仅获取当前节点的文本? var cheerio = require('cheerio') const htmlString = 'helloworld' $ = cheer
我有这段代码: const response = await request.get( `https://www.youtube.com/watch?v=yURRmWtbTbo&sp=EgI
我是 JavaScript 的新手,我很确定我错过了从 HTML 页面(由 Web 浏览器浏览)使用 JS 的一些基本知识。 我的目标是从 a dynamic website 中删除照片链接使用 ch
我发布了我的问题希望有人能帮助我,我尝试抓取所有具有机器人属性的链接使用cheerio,我向一个url发出请求,它以字符串形式检索一个html页面。 test
我正在解析一个网站,并且有多个看起来像这样的表。 Saturday 每个表的表类名称都是唯一的。 我想为这个特定表中的每一行提取 Linking 的跨度类,但我正在努力选择要使
如果我有以下 html 代码: Random stuff blabla 如何使用cheerio提取title和href的所有值?我尝试了以下操作,但它只会提取 hello 和 fb.com 并跳过其余
我正在使用cheerio 来修改我从网站上抓取的HTML。然而,它搞乱了配额。 这个脚本工作正常,唯一的问题是,它正在将 ' 更改为 " // Load in HTML $
https://www.cbf.com.br/futebol-brasileiro/competicoes/campeonato-brasileiro-serie-a/2018/1?ref=botao
我有以下代码: var cheerio = require('cheerio'); var html = " Header 1 Header 2 Header 3"; var $ = cheerio.
嘿,伙计们,女士们,首先这是我在 stackoverflow 中的第一个问题,所以不要对我太苛刻......但是 w/e :P。我有个问题..我对网络抓取完全陌生,目前我遇到无法选择正确元素的问题。我
我有一个 html 看起来像: 132 Purple Grove Albany, Texas 76801 Phone: (111) 111-
我有一个代码,可以对特定页面进行网络废弃。我使用 puppeteer+cheerio 来做到这一点。在我的笔记本电脑上代码完美运行。但是在将它部署到 VDS 之后,cheerio each() 选择器
如何获取选择器的 css 属性? 有html 和 my_class 的一些属性 .my_class { color: red } 在 JS 代码中,我使用的是 cheerio 库: va
我正在尝试检查 2 个 html 表格的元素: head1 value1
我有一个类似这样的 html 页面,其中包含 2 个产品和基于条件的不同版本,在本例中 1 个产品有 4 个条件
在 Cheerio/Jquery documentation据说, return false 应该尽早中断每个循环。 我有以下代码: "use strict"; let cheerio = requi
我有一些这样的 HTML: Code: 12345 Category: faucets 我想获取类别名称(“水龙头”)。这是我的试用版: var $ = cheerio.load(html.conte
我是 JavaScript 的新手,我很确定我错过了从 HTML 页面(由 Web 浏览器浏览)使用 JS 的一些基本知识。 我的目标是从 a dynamic website 中删除照片链接使用 ch
大家晚上好 我研究了 cheerio 并尝试解析来自网站的数据。它的结构如下,我直接上正文: Text A Sub-Text A some text Sub-Text B some t
我是一名优秀的程序员,十分优秀!