我想解析與Nokogiri的HTML頁面,但我有一些問題與文本。主要是,我無法擺脫不需要的字符。在解析時,當我獲得一個字符串時,我總是儘可能地清理它。我嘗試將不可打印的字符轉換爲獨特的空間。我用這個方法沒有成功很多修改後:紅寶石(1.8.7):如何擺脫不可打印的字符,而刮?
def clear_string(str)
CGI::unescapeHTML(str).gsub(/\s+/mu," ").strip
end
例如,supose這個HTML片段(從http://www.gisa.cat/gisa/servlet/HomeLicitation?licitationID=1061525拷貝粘貼)
<tr>
<td><span class="linkred2">Tramitació:</span></td>
<td> ordinària </td>
</tr>
一些中間體例如輸出由Netbeans的7.0中使用引入nokogiri顯示和clear_string
(上面定義的方法)
row.at("td[1]").text # => "Tramitació:"
row.at("td[2]").text # => " ordinària "
clear_string(row.at("td[2]").text) # => " ordinària"
row.at("td[2]").text.scan(/./mu) # => ["\302\240", "o", "r", "d", "i", "n", "\303\240", "r", "i", "a", " "]
我不知道爲什麼strip
沒有擺脫網絡連接第一個空格。此外,應用clear_string
後的解析結果使用YAML::dump
轉儲到yaml文件中。其內容分別爲兩種文本:
"Tramitaci\xC3\xB3:"
!binary |
wqBvcmRpbsOgcmlh
第一個似乎勉強OK,但我不知道如何解決的第二種情況。
哪個引入nokogiri的版本您使用的? –
機械化1.0.0和nokogiri 1.4.4 –