Home > Net >  How to collect only the second text value of data returned from an XPATH using CheerioGS?
How to collect only the second text value of data returned from an XPATH using CheerioGS?

Time:02-20

The sitemap (https://futebolnatv.com.br/jogos-hoje/) looks like this:

<div >
<div >
     <span >0</span>
     <img src="https://futebolnatv.com.br/static/times/ba92f23d6f11341548d808a0ec309acc.png" width="25" height="25">
     "Holstein Kiel"
</div>

Using CheerioGS, to collect the text value I use this path:

    let elements_2 = $('tbody > tr > td > div:nth-child(2)')
    elements_2.each((index, value) => {
      sheet.getRange(index 1, 3).setValue($(value).text().trim())
    })

But instead of just the name Holstein Kiel, it's coming with this number that's inserted into <span> that I don't want:

0
Holstein Kiel

The expected return is:

Holstein Kiel

What should I change to resolve this issue?

CheerioGS project:
https://github.com/tani/cheeriogs

CodePudding user response:

You need to change your selector from

$(value).text().trim()

to

$(value).contents().last().text().trim()

Explanation: instead of retrieving text of whole matched element, you need to get all its nodes first (via contents()), then get text node you need (via last()). Rest of code is unchanged.


Reference:

  • Related