刮擦不返回期望值

时间:2018-06-22 13:01:13

标签: html ruby nokogiri

我正在使用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的价值...

0 个答案:

没有答案