无法弄清楚如何解析表行和某些列并导出为 CSV



首先,让我承认我是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没有像其他列中使用的类那样的类。

如果有人能给我一点指导,我将不胜感激!

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

相关内容

  • 没有找到相关文章

最新更新