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

dat*_*ile 1 html node.js web-scraping cheerio

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

相当于jQuery,.attr('name')但是undefined在cheerio 中返回.

rai*_*7ow 8

我猜,只有一种情况是在$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
Run Code Online (Sandbox Code Playgroud)

请注意,该<name>属性仅适用于以下元素集(MDN):

<a>, <applet>, <button>, <form>, <frame>, <iframe>, <img>, 
<input>, <map>, <meta>, <object>, <param>, <select>, <textarea>
Run Code Online (Sandbox Code Playgroud)

要获取元素本身的名称(实际上是tagName,但Cheerio将其抽象化),请使用nameCheerio容器中包含的基础元素的属性,如下所示:

console.log( $('#one')[0].name ); // input 
console.log( $('#two')[0].name ); // input
Run Code Online (Sandbox Code Playgroud)