如何使用mechanize(ruby gem)解析这个html页面? *小修改*

时间:2012-03-09 09:44:20

标签: ruby parsing html nokogiri

在页面上,我有以下HTML源代码:

<div class="date">date1</div>

<div class="company"><div class="time">time1</div>
<a href="company_link1">company_name1</a></div>

<div class="company"><div class="time">time2</div>
<a href="company_link2">company_name2</a></div>

<div class="date">date2</div>
<div class="company"><div class="time">time3</div>
<a href="company_link3">company_name3</a></div>

... etc. 

我需要在最后阶段收到以下数组:

  

array = [[date,time1,company_name1,company_link1],[date,time2,company_name2,company_link2],[date2,time3,company_name3,company_link3],...]

问题是div“class = company”没有日期,所以我需要解析正确的日期并将每个日期添加到所有项目(时间,公司名称,公司链接)。

非常感谢你的帮助,我是Ruby的新手。

PS:我需要使用机械化,因为我的页面只能通过登录来检索。

1 个答案:

答案 0 :(得分:3)

嗯,你的date2 div没有正确关闭,但可能是这样的:

doc.css('.company').map{|x| [x.at('./preceding-sibling::div[@class="date"][1]').text, x.at('.time').text, x.at('a').text, x.at('a')[:href]]}