如果 href 包含特定文本的一部分,则抓取 text() 值
Scraping text() value if href contains a part of specific text
如果 href
包含 venue/
,我正在尝试收集 a
中的文本,所以我尝试这样做:
var venue = $('.details > span > a:contains(href="venue/")');
sheet.getRange(3,17).setValue(venue.text().trim());
但是 returns 没有值,我应该如何检索这样的值?
由于站点不时更改元素的位置,因此我需要定义此包含。
预期结果:
Estadio Manuel Ferreira (Asunción)
地图示例:
<div class="details ">
<a href="/matches/2021/08/12/">11/08/2021</a>
<span class="divider"></span>
<a href="/international/south-america/copa-libertadores/2021/quarter-finals/r61990/">CONMEBOL Libertadores</a>
<span class="divider"></span>
<span>KO</span>
<span>
19:15
</span>
<br>
<span>Venue</span>
<span>
<a href="venue/">Estadio Manuel Ferreira (Asunción)</a></span>
</div>
问题似乎就在第一行,因为“地点”变量 return 不是您所期望的。
我建议您 select 通过获取您提供的 div
中类型 a
的最后一个元素并分配其 [=14= 的值来寻找您正在寻找的锚点] 属性到名为 venue
的变量。之后,检查 venue
变量是否等于 venue/
。如果条件returns true
,获取锚点的内部文本,将其分配给一个名为result
的变量并记录它。
您可以使用以下代码使其工作:
let element = $('.details a').last()
let venue = element.attr('href');
if (venue === 'venue/') {
let result = element.text()
console.log(result) // this is the value you are looking for
}
已更新:
let elements = $('.details a')
elements.each((index, value) => {
let href = $(value).attr('href')
if (href === 'venue/') {
console.log($(value).text())
}
})
如果 href
包含 venue/
,我正在尝试收集 a
中的文本,所以我尝试这样做:
var venue = $('.details > span > a:contains(href="venue/")');
sheet.getRange(3,17).setValue(venue.text().trim());
但是 returns 没有值,我应该如何检索这样的值?
由于站点不时更改元素的位置,因此我需要定义此包含。
预期结果:
Estadio Manuel Ferreira (Asunción)
地图示例:
<div class="details ">
<a href="/matches/2021/08/12/">11/08/2021</a>
<span class="divider"></span>
<a href="/international/south-america/copa-libertadores/2021/quarter-finals/r61990/">CONMEBOL Libertadores</a>
<span class="divider"></span>
<span>KO</span>
<span>
19:15
</span>
<br>
<span>Venue</span>
<span>
<a href="venue/">Estadio Manuel Ferreira (Asunción)</a></span>
</div>
问题似乎就在第一行,因为“地点”变量 return 不是您所期望的。
我建议您 select 通过获取您提供的 div
中类型 a
的最后一个元素并分配其 [=14= 的值来寻找您正在寻找的锚点] 属性到名为 venue
的变量。之后,检查 venue
变量是否等于 venue/
。如果条件returns true
,获取锚点的内部文本,将其分配给一个名为result
的变量并记录它。
您可以使用以下代码使其工作:
let element = $('.details a').last()
let venue = element.attr('href');
if (venue === 'venue/') {
let result = element.text()
console.log(result) // this is the value you are looking for
}
已更新:
let elements = $('.details a')
elements.each((index, value) => {
let href = $(value).attr('href')
if (href === 'venue/') {
console.log($(value).text())
}
})