使用 while 循环和 nokogiri gem 导航到下一页
using while loop with nokogiri gem to navigate to next page
这是我的下一页代码
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 没有获取其他页面的数据 pages.Can 有人帮助我吗?提前致谢
您的代码未针对正确 class。在您的 while 循环中,您的目标是 a.btnNextPre
,但 class 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
这是我的下一页代码
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 没有获取其他页面的数据 pages.Can 有人帮助我吗?提前致谢
您的代码未针对正确 class。在您的 while 循环中,您的目标是 a.btnNextPre
,但 class 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