以下是我的下一页代码
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
我想抓取所有页面的数据。但我只收到第一页的数据。我没有得到其他页面的数据。可以有人帮助我吗?提前致谢
答案 0 :(得分: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