我正在使用ruby脚本和Nokogiri抓取网页。
在这段代码中,我想检索比赛时间:(这是针对slakbot的,它说明比赛是否已经开始,实时比分是多少,并告诉比赛何时开始)。
我删除的网址:
doc = Nokogiri::HTML(open("https://fr.fifa.com/worldcup"))
我的方法:
match_times = doc.css('.fi-mu__m').map {|time| time.css('.fi-mu__score-info').css('.fi-mu__match-time').css('.fi-s__scoreText').map(&:text)}.flatten.map{|time| time.gsub( / *\n+/, "" ).gsub( / *\r+/, "" ).lstrip.rstrip }.map {|time| (Time.parse(time) - 3600).strftime("%H:%M")}
我的结果:
["14:00", "17:00", "19:00", "11:45", "11:45", "11:45", "11:45"]
我需要3个第一结果... “ 14:00”,“ 17:00” 是正确的,但“ 19:00” 不好...应该为“ 20:00”
以下是DOM显示的内容:
我在写这个问题时,第一场比赛已经开始,所以我现在不需要它了。
第二场比赛:
<div class="fi-mu__match-time" data-timeutc="15:00" data-timeshiftutc="180" data-daymonthutc="2206" data-timelocal="18:00" data-mytime="17:00">
<span class="fi-s__scoreText">17:00</span>
</div>
第三场比赛:
<div class="fi-mu__match-time" data-timeutc="18:00" data-timeshiftutc="120" data-daymonthutc="2206" data-timelocal="20:00" data-mytime="20:00">
<span class="fi-s__scoreText">20:00</span>
</div>
我不知道怎么了...我需要获得data-mytime
的价值...