我試圖從包含.value
和.rating-ineligible
類的網站中刮取數據。什麼是追蹤元素髮生的最佳方式,並在Ruby中使用Nokogiri設置相應的數組
我希望跟蹤這兩個.value
和.rating-ineligible
的在單個陣列中,檢查.value
是否可用與否:
page.css('td.title .value').text.strip
page.css('.rating-ineligible').text.strip
我想叫FLAG[]
陣列,設置爲"A"
元素時.value
是現在和"NA"
如果.rating-ineligible
存在 其中輸出應該是這個樣子:
FLAG["A","A","A","NA","A","NA","A","A"]
是否有任何破解使得FLAG
陣列可以工作?
樣品輸入:
<td class=title>
<span class="rating-rating">
<span class="value">8.7</span>
</span>
<div class="rating-ineligible">
<a href="somelink">NYR</a>
</div>
<span class="rating-rating">
<span class="value">5.2</span>
</span>
<span class="rating-rating">
<span class="value">6.1</span>
</span>
<span class="rating-rating">
<span class="value">7.9</span>
</span>
<div class="rating-ineligible">
<a href="somelink">NYR</a>
</div>
<span class="rating-rating">
<span class="value">-</span>
</span>
<span class="rating-rating">
<span class="value">4.2</span>
</span>
</td>
如果你看到上面的示例輸入,有三種類型的現值,
One is rating : *.* Second is : NYR Third one is : - (Hyphen)
我想這些在一個被捕獲單個陣列,
其中值應該設置爲「A」如果一個有效的評級是存在於格式x.x中
的值應該被設置爲「NA」如果存在於輸入端的值是NYR。
和「 - 」如果在輸入中存在連字符符號-。
所需的輸出:
標誌[ 「A」, 「NA」, 「A」, 「A」, 「A」, 「NA」, 「 - 」, 「A」]
相反設置標誌我累它通過捕獲值代入下面陣列的,
r = page.css('td.title span.value').text.strip
noe=["NOE"]
ra=r.scan(/./)
ra.map!{|x| x=='-'?noe:x}.flatten!
rat=ra.join("")
rati=rat.scan(/.../)
和陣列拉提像下面[]長相的輸出,
拉提[「8.7」,「5.2」 ,「6.1」,「7.9」,「NOE」,「4.2」]
但這裏的問題是, 有本完全8個值中的給定輸入, 這超過了5個值在XX 一個值的格式是在的格式 - 其被捕獲作爲NOE「」在陣列 但我無法捕獲該陣列中的NYR。
上面輸入的所需輸出應該如下所示: rati [「8.7」,「NYR」,「5.2」,「6.1」,「7.9」,「NYR」,「NOE」,「4。2" ] ,但我不知道確切的方式,如何捕捉NYR值到數組。
誰能給我正確的代碼來做到這一點?在此先
感謝。
請提供示例輸入和所需輸出 – Phrogz 2012-08-10 13:20:00
此外,請顯示您嘗試編寫的一些示例代碼,以表明您已嘗試解決該問題。 – 2012-08-10 20:16:21