gpt4 book ai didi

css - 获取 ID 以 "ABC"开头的所有节点

转载 作者:太空宇宙 更新时间:2023-11-04 15:27:11 24 4
gpt4 key购买 nike

我正在尝试使用 Ruby 和 Nokogiri 抓取一个包含大约 10 列的页面,其中大部分列都非常简单,因为它们具有唯一的类名。但是,其中一些类 ID 似乎在标准类名后面附加了长数字字符串。

例如,游戏时间都是通过 .eventLine-time 获取的,团队名称都是通过 .team-name 获取的,但是这个特定的有,例如:

<div class="eventLine-book-value" id="eventLineOpener-118079-19-1522-1">-3&nbsp;-120</div>

.eventLine-book-value 不特定于此列,因此没有用。每个游戏的 13 位数字都不同,并尝试类似:

def nodes_by_selector(filename,selector)
file = open(filename)
doc = Nokogiri::HTML(file)
doc.css(^selector)
end

给我留下了错误。我已经看到 ^ 和 ~ 在其他语言中使用,但我是新手,我尝试寻找方法来获取 id=eventLineOpener-XXXX 下的所有数据,但无济于事。

最佳答案

要获取id=eventLineOpener-XXXX下的所有数据,需要传递'div[id*=eventLineOpener]'作为选择器:

def nodes_by_selector(filename,selector)
file = open(filename)
doc = Nokogiri::HTML(file)
doc.css(selector) #doc.css('div[id*=eventLineOpener]')
end

上述方法将返回一个包含 id=eventLineOpener-XXXXNokogiri::XML::Element 对象数组。

此外,要提取每个 Nokogiri::XML::Element 对象的内容,您需要遍历每个对象并使用 text 方法在那些物体上。例如:

doc.css('div[id*=eventLineOpener]')[0].text

关于css - 获取 ID 以 "ABC"开头的所有节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13893767/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com