La separación de una cadena de elementos HTML en cadenas múltiples

James Waugh III:

Estoy usando web scraping titiritero y yo estoy tratando de extraer el innerText de este elemento h4.

<h4 class="loss">
(NA)
<br>
<span class="team-name">TEAMNAME</span>
<br>
<span class="win spoiler-wrap">0</span>
</h4>

Soy capaz de obtener este elemento usando:

const teamName = await matches.$eval('h4', (h4) => h4.innerHTML);

Esto establecerá teamname a:

(NA)<br><span class="team-name">TEAMNAME</span><br><span class="win spoiler-wrap">0</span>

Estoy tratando de obtener sólo el texto interior de cada elemento.

Puedo obtener la (NA) usando const s = teamName.substr(0, teamName.indexOf('<'));

Pero me parece que no puede encontrar la manera de conseguir "teamname" o "0" fuera de esta cadena. Tengo pensamientos de la utilización de expresiones regulares, pero no estoy seguro de cómo iba a lograr esto.

PD: el texto interno no siempre será el mismo, así que no puedo buscar palabras específicas.

David:

Con expresiones regulares, puede hacerlo de esta manera:

teamName.match(/<span class="team-name">(.*)<\/span>/)[1]

match devuelve una matriz, donde el primer elemento es el partido de toda la expresión regular, el segundo elemento es el partido del primer grupo de expresiones regulares, el tercer elemento es la combinación del segundo grupo de expresiones regulares (no hay ninguno en este caso), etc.

Las /.../marcas de una expresión regular que coincide con el primer partido más importante que pueda encontrar. .en una expresión regular es cualquier carácter. *Especifica que va a la par de cualquier número de apariciones del carácter, incluyendo 0 ocurrencias. (...)es un grupo de expresiones regulares, que se utiliza por match. \es un carácter de escape, ya que /es un carácter especial para iniciar y finalizar una expresión regular.

Yo recomiendo muchísimo lectura de la documentación de Mozilla en partido y en expresiones regulares para obtener más detalles. Usted encontrará a menudo útiles.

Sin embargo, en el caso de titiritero que probablemente también es una manera de hacer coincidir directamente el selector h4 span, lo que sería más sencillo que el uso de expresiones regulares. No sé lo suficiente sobre titiritero que le diga la manera exacta de hacer eso. : /

Supongo que te gusta

Origin http://10.200.1.11:23101/article/api/json?id=406640&siteId=1
Recomendado
Clasificación