首先,我承认我是Ruby的新手。我只使用了几天,但取得了一定的成功。我已经能够解析在多个HTML文件中单独存在的某些项目并导出为CSV;但是,我坚持解析多个HTML文件的整个数据表。我能够拉出比我需要的更多但是生成的CSV导出将每个HTML文件的所有数据都作为CSV中单个单元格内的数组。
以下是我正在查看的数据的简化版本(每页重复约20-30行):
<tbody id="threadbits_forum_406">
<tr>
<td class="alt1" id="td_threadstatusicon_######"> IMG </td>
<td class="alt2" align="center" valign="middle">
<a href="http://I.NEED.THIS">
<div style="height:75px; width:150px; overflow:hidden; background:url(http://I.NEED.THIS/TOO) center 25%;"> </div>
</a>
</td>
<td class="alt1" id="td_threadtitle_######" title="blah">[...]</td>
<td class="alt2" title="blah"> <div class="smallfont" style="text-align:right; white-space:nowrap"> <a href="dontcare"> </a> </div> </td>
<td class="alt1" align="center">[...]</td>
<td class="alt2" align="center">[...]</td>
</tr>
由于列的类被使用了几次,我无法理解用什么CSS或XPATH技巧来提取DIV中的背景图片以及仅在第二列上的HREF链接。 DIV没有类似于另一列中使用的类。
如果有人能给我一点指导,我会很感激!
答案 0 :(得分:0)
doc.search('tr td:eq(2)').each do |td|
puts td.at('a')['href'] # http://I.NEED.THIS
if td.at('div')['style'] =~ /url\((.+)\)/
puts $1 # http://I.NEED.THIS/TOO
end
end