Ruby on rails 无法在Ruby中使用Nokogiri刮取数据

Ruby on rails 无法在Ruby中使用Nokogiri刮取数据,ruby-on-rails,ruby,web-scraping,nokogiri,Ruby On Rails,Ruby,Web Scraping,Nokogiri,我目前正在尝试使用Nokogiri从网页中抓取数据。 我想从链接中获取服务中心列表的数据 我为此编写的代码是: require 'open-uri' require 'nokogiri' doc = Nokogiri::HTML(open("http://www.cardekho.com/Maruti/Noida/car-service-center.htm")) doc.css('.delrname').each do |node| puts node.text end 我尝试了

我目前正在尝试使用Nokogiri从网页中抓取数据。 我想从链接中获取服务中心列表的数据

我为此编写的代码是:

require 'open-uri'
require 'nokogiri'

doc = Nokogiri::HTML(open("http://www.cardekho.com/Maruti/Noida/car-service-center.htm"))

doc.css('.delrname').each do |node|
    puts node.text
end
我尝试了很多CSS标签的组合,但是没有一个能达到预期的效果。有人能推荐一个标签来正确地从这个链接中为服务中心列表提取数据吗

提前谢谢


PS:当我在其他网站上测试时,相同的代码(带有适当的CSS标记)按预期工作,但在这个网站上不工作。

您的代码似乎工作正常。我已删除url中的空白:

doc = Nokogiri::HTML(open("http://www.cardekho.com/Maruti/Noida/car-service-center.htm"))
然后我尝试了一下,这是输出:

$ ruby file.rb                                                                                                                                              Fast Track Auto Care India
Jkm Motors
Mangalam Motors
Motorcraft India
Motorcraft India
Rohan Motors
Rohan Motors
Rohan Motors
Vipul Motors

或者,您可以使用正则表达式来获得更详细的结果。。。例如,使用:

/(<div class="delrname">([^<]*)<\/div><p>([^<]*)<\/p><div><div class="delermobcol "><div class="clearfix"><span class="mobico sprite"><\/span><div class="mobno">([^<]*)<\/div><\/div><div class="clear"><\/div><div class="viewsercntr"><a href="([^"]*)" title="View Car Dealers for Maruti in Noida">View Car Dealers for Maruti in Noida<\/a><\/div><\/div><div class="delermoilcol"><!----><div class="clearfix"><span class="mailico sprite"><\/span><div class="mobno"><a href="mailto:([^"]*)" target="_top">workshop.grn@rohanmotors.co.in<\/a><\/div>)/

/([^您的代码有效,只需删除那里的空格
car-service
arrMatches = doc.scan(/(<div class="delrname">([^<]*)<\/div><p>([^<]*)<\/p><div><div class="delermobcol "><div class="clearfix"><span class="mobico sprite"><\/span><div class="mobno">([^<]*)<\/div><\/div><div class="clear"><\/div><div class="viewsercntr"><a href="([^"]*)" title="View Car Dealers for Maruti in Noida">View Car Dealers for Maruti in Noida<\/a><\/div><\/div><div class="delermoilcol"><!----><div class="clearfix"><span class="mailico sprite"><\/span><div class="mobno"><a href="mailto:([^"]*)" target="_top">workshop.grn@rohanmotors.co.in<\/a><\/div>)/)

arrMatches.each do |dealerInfo|
  thisEntireMatch = dealerInfo[0]
  thisName = dealerInfo[1]
  thisAddress = dealerInfo[2]
  thisMobile = dealerInfo[3]
  thisLink = dealerInfo[4]
  thisEmail = dealerInfo[5]
end