0
下一頁

這裏是我的下一個頁面使用while循環與引入nokogiri寶石導航到

require 'nokogiri' 
require 'open-uri' 

doc = Nokogiri::HTML(open("http://www.asklaila.com/search/Pune/-/Electrician/10?searchNearby=false&v=listing")) 
c= doc.css('.resultTitle').collect {|node| node.text.strip} 

while a = doc.at('a.btnNextPre') 
    doc = Nokogiri::HTML(open(a[:href])) 
    c= doc.css('.resultTitle').collect {|node| node.text.strip} 
end 

我想湊所有pages.But我得到第一頁only.I我的數據的數據碼沒有得到其他網頁的數據。有人可以幫我嗎?在此先感謝

回答

2

您的代碼不是針對正確的類。在你的while循環中,你的目標是a.btnNextPre,但btnNextPre類屬於li標記,所以它應該是li.btnNextPre。因此,嘗試改變你的代碼是這樣的:

require 'nokogiri' 
require 'open-uri' 

c = [] 
doc = Nokogiri::HTML(open("http://www.asklaila.com/search/Pune/-/Electrician?searchNearby=false&v=listing")) 
c.push(doc.css('.resultTitle').collect {|node| node.text.strip}) 

while a = doc.at('li.btnNextPre a') 
    doc = Nokogiri::HTML(open(a[:href])) 
    c.push(doc.css('.resultTitle').collect {|node| node.text.strip}) 
end 

c 
+0

它不工作,則返回零值 –

+0

我不知道爲什麼它不爲你工作。 http://pastie.org/10447873與工作代碼 –

+0

你沒有使用while循環在你的代碼........我遇到了一個錯誤,當我使用while代碼循環 –