我试图抓取到 CSV 数据库/Ruby 数组的页面列出了 470 个大小不一的组的总记录,每个组前面都有一个日期(总共 22 个唯一日期)。
我不知道该怎么做,因为组没有被组织到任何 HTML 表中,也没有在 DOM 中的任何层次结构中,“父”可能导致每个组的日期,只有<div class="line">
可见记录 div 的干列表,有时前面只有a<span class="date">Thursday, May 24, 2012</span>
保存仅适用于下 X 条记录的日期,直到打印新日期。
在irb
其中正确显示:
$page = $agent.get(pageurl) # gets page with Mechanize
doc = $page.parser # returns Nokogiri::HTML
(records = doc.search('html body div#wrapper div#innerwrapper div#content div.line')).size
=> 470
(dates = doc.search('html body div#wrapper div#innerwrapper div#content span.date')).size
=> 22
例如显示第一个日期:
doc.search('html body div#wrapper div#innerwrapper div#content span.date')[0].text
=> "Wednesday, May 23, 2012"
我的目标是将正确的日期作为字段附加到上面找到的 470条记录doc.search 中,然后保存到 CSV 文件中。
Nokogiri(或 Mechanize)可以帮助我根据它们在 DOM 中的位置分组检索这些记录,即紧随其后dates[N].text
但在下一个之前<span class="date">
?
我可以将 N 从 0 迭代到 21,附加到所有 470 条记录的主数组/CSV 对象,但对于每个组,添加适当的date
字段。