2017-02-23 89 views
0

我可以使用nokogiri縮小HTML文檔的範圍。我需要能夠從nokogiri對象中提取href,但是我無法想象如何爲我的生活做到這一點。調用row.css('td > b').to_html方法爲我提供了字符串形式的漂亮html表示。但我需要用nokogiri來解析這個。如何解析Nokogiri XML元素?

"<b><a href=\"/ShowTopic-g293766-i9284-k10224928-Tour_companies_for_botswana-Botswana.html\" onclick=\"setPID(34603)\">\ntour companies for botswana</a></b>" 

的引入nokogiri相當於我是無法從該網址提取低於:

[#<Nokogiri::XML::Element:0x3fe972a9deb8 name="b" children=[#<Nokogiri::XML::Element:0x3fe972ad90a8 name="a" attributes=[#<Nokogiri::XML::Attr:0x3fe972ad8ff4 name="href" value="/ShowTopic-g317055-i11941-k10224606-United_Expeditions_tour_company_Maun-Maun_North_West_District.html">, #<Nokogiri::XML::Attr:0x3fe972ad8fe0 name="onclick" value="setPID(34603)">] children=[#<Nokogiri::XML::Text:0x3fe972ad8900 "\nUnited Expeditions tour company, Maun">]>]>]

的片段上方是引入nokogiri XML對象的一個​​令人困惑的一點我想。但我只想獲得href。我該怎麼做?

回答

1
row.css('td > b a').attr('href') 

這應該做的工作。閱讀更多關於How to access attributes using Nokogiri

+0

我試過同樣的想法,但霍利莫利是這個框架煩人。有了上面的建議,我得到了下面的錯誤:'TripAdvisorParserTest#test_getSubforumPageThreads: NoMethodError:未定義的方法'屬性'爲零:NilClass /Users/imtiazahmad/.rvm/gems/ruby-2.1.2/gems/nokogiri-1.6。 8.1/LIB /引入nokogiri/XML/node_set.rb:164:在'ATTR」 ' –

+1

實現對付吸盤最好的方法是使用to_h方法,該方法把它變成一個哈希第一和然後處理直接在紅寶石吸盤 –