如何使用 CheerioGS 仅收集从 XPATH 返回的数据的第二个文本值?
How to collect only the second text value of data returned from an XPATH using CheerioGS?
站点地图 (https://futebolnatv.com.br/jogos-hoje/) 如下所示:
<div class="col-md-01">
<div class="col-md-12">
<span class="label label-default">0</span>
<img src="https://futebolnatv.com.br/static/times/ba92f23d6f11341548d808a0ec309acc.png" width="25" height="25">
"Holstein Kiel"
</div>
使用CheerioGS
,收集文本值我使用这个路径:
let elements_2 = $('tbody > tr > td > div:nth-child(2)')
elements_2.each((index, value) => {
sheet.getRange(index+1, 3).setValue($(value).text().trim())
})
但不仅仅是名字 Holstein Kiel
,它还附带了这个我不想要的插入到 <span>
中的数字:
0
Holstein Kiel
预期的 return 是:
Holstein Kiel
我应该更改什么来解决这个问题?
CheerioGS 项目:
https://github.com/tani/cheeriogs
您需要更改选择器
$(value).text().trim()
至
$(value).contents().last().text().trim()
说明:不是检索整个匹配元素的文本,而是需要先获取其所有节点(通过contents()
),然后获取所需的文本节点(通过last()
)。其余代码未更改。
参考:
您也可以只删除它们,有时这样会更快:
$('.label').remove()
站点地图 (https://futebolnatv.com.br/jogos-hoje/) 如下所示:
<div class="col-md-01">
<div class="col-md-12">
<span class="label label-default">0</span>
<img src="https://futebolnatv.com.br/static/times/ba92f23d6f11341548d808a0ec309acc.png" width="25" height="25">
"Holstein Kiel"
</div>
使用CheerioGS
,收集文本值我使用这个路径:
let elements_2 = $('tbody > tr > td > div:nth-child(2)')
elements_2.each((index, value) => {
sheet.getRange(index+1, 3).setValue($(value).text().trim())
})
但不仅仅是名字 Holstein Kiel
,它还附带了这个我不想要的插入到 <span>
中的数字:
0
Holstein Kiel
预期的 return 是:
Holstein Kiel
我应该更改什么来解决这个问题?
CheerioGS 项目:
https://github.com/tani/cheeriogs
您需要更改选择器
$(value).text().trim()
至
$(value).contents().last().text().trim()
说明:不是检索整个匹配元素的文本,而是需要先获取其所有节点(通过contents()
),然后获取所需的文本节点(通过last()
)。其余代码未更改。
参考:
您也可以只删除它们,有时这样会更快: $('.label').remove()