如何使用 node.js 在cheerio 中获取元素名称

Posted

技术标签:

【中文标题】如何使用 node.js 在cheerio 中获取元素名称【英文标题】:How do I get an element name in cheerio with node.js 【发布时间】:2014-05-21 04:04:21 【问题描述】:

如何在 Cheerio 中获取元素的名称?

jQuery 等价物是 .attr('name'),但它在cheerio 中返回 undefined

【问题讨论】:

【参考方案1】:

我想只有一种情况,当$someElement.attr('name') 返回undefined - 如果该元素上没有属性 name。比如……

var cheerio = require('cheerio'),
    $ = cheerio.load(
      '<input id="one" type="input" /><input id="two" name="some_name" />');

console.log( $('#one').attr('name') ); // undefined
console.log( $('#two').attr('name') ); // some_name

请注意,&lt;name&gt; 属性仅适用于以下元素集 (MDN):

<a>, <applet>, <button>, <form>, <frame>, <iframe>, <img>, 
<input>, <map>, <meta>, <object>, <param>, <select>, <textarea>

要获取元素本身的名称(实际上是 tagName,但 Cheerio 对其进行了抽象),请使用包裹在 Cheerio 容器中的底层元素的 name 属性,如下所示:

console.log( $('#one')[0].name ); // input 
console.log( $('#two')[0].name ); // input

【讨论】:

我正在寻找元素的名称而不是属性名称。例如 = "输入" 那么,就像我说的,你应该使用$('someSelector')[0].name

以上是关于如何使用 node.js 在cheerio 中获取元素名称的主要内容,如果未能解决你的问题,请参考以下文章

如何从Google Cloud Function(Cheerio,Node.js)发出多个http请求

我可以在 node.js 中使用cheerio 包加载本地 html 文件吗?

node.js 使用 superagent 与 cheerio 完成简单爬虫

如何使用 node.js 抓取具有动态内容的页面?

Node.js 解析 HTML 表并以 JSON 格式获取结果

node爬虫的几种简易实现方式