1

まず、私が Ruby の初心者であることを認めさせてください。私はそれを数日間しか使用していませんが、妥当な成功を収めています. 複数の HTML ファイルに単独で存在する特定のアイテムを解析し、CSV にエクスポートすることができました。ただし、複数の HTML ファイルのデータのテーブル全体を解析することに行き詰まっています。必要以上にプルすることができましたが、結果の CSV エクスポートでは、CSV の 1 つのセル内に各 HTML ファイルのすべてのデータが配列として含まれていました。

これは、私が見ているデータの簡略化されたバージョンです (各ページで約 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>

列のクラスが数回使用されているため、DIV の背景画像とちょうどその 2 番目の列にある HREF リンクを引き出すために使用する CSS または XPATH トリックを理解するのに苦労しています。DIV には、他の列で使用されているようなクラスはありません。

誰かが私に少しのガイダンスを与えることができれば、私はそれを感謝します!

4

1 に答える 1

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
于 2013-11-03T05:26:19.503 に答える