0
我對Ruby非常陌生,目前正在使用Nokogiri進行網站抓取練習。我想從隨機團購網站的「交易」中獲取詳細信息。我已經能夠成功地颳去一個網站,但我在解析輸出時遇到了問題。我嘗試了here中建議的解決方案,並使用正則表達式。到目前爲止,我失敗了。使用Nokogiri刮取字符串時刪除了一些空格
我試圖從this頁面解析以下標題/描述:
Frosty Frappes starting at P100 for P200 worth at Café Tavolo – up to 55% off
這是我得到:
FrostyFrappes starting at P100 for P200 worth at Caf Tavolo up to 55% off
下面是我的代碼片段:
require 'uri'
require 'nokogiri'
html = open(url)
doc = Nokogiri::HTML(html.read)
doc.encoding = "utf-8"
title = doc.at_xpath('/html/body/div/div[9]/div[2]/div/div/div/h1/a')
puts title.content.to_s.strip.gsub(/[^0-9a-z%&!\n\/(). ]/i, '')
請告訴我,如果我錯過了一些東西。謝謝。
非常感謝@pguardiario!我保留了我一直使用的原始xpath,並使用你的正則表達式改變了正則表達式。我用'/ \ s + [^ 0-9a-z]/i,''',它工作!看起來好像我在一開始就是如何構建它的。 – nmenego 2012-03-13 07:43:38
不客氣。考慮改變你的xpath,以便小的佈局改變不會破壞你的腳本。另外我不確定爲什麼[^ 0-9a-z]是必要的,但考慮更簡單的\ W,它是任何非單詞字符的簡寫。 – pguardiario 2012-03-13 07:53:51
非常感謝(再次)!我會記住所有這些。我只是使用Firefox的Firebug來提取xpath的(在Firebug檢查器中右鍵單擊,複製xpath)。有更聰明的方法嗎? – nmenego 2012-03-13 08:14:37