2016-05-31 12 views
0

Ich habe dieses Array von einem Web-Kratzen zurück. Das sieht so aus:Array-Nutzung in Schienen entfernen Duplikate

[["formatted_sum_fees", "£5.60"], 
["formatted_price", "£46.50"], 
["formatted_sum_fees", "£4.50"], 
["formatted_price", "£37.50"], 
["formatted_sum_fees", "£3.30"], 
["formatted_price", "£27.50"], 
["formatted_sum_fees", "£3.30"], 
["formatted_price", "£27.50"], 
["formatted_sum_fees", "£4.50"], 
["formatted_price", "£37.50"], 
["formatted_sum_fees", "£4.50"], 
["formatted_price", "£37.50"], 
["formatted_sum_fees", "£4.50"], 
["formatted_price", "£37.50"], 
["formatted_sum_fees", "£5.60"], 
["formatted_price", "£46.50"], 
["formatted_sum_fees", "£4.50"], 
["formatted_price", "£37.50"], 
["formatted_sum_fees", "£5.60"], 
["formatted_price", "£46.50"], 
["formatted_sum_fees", "£4.50"], 
["formatted_price", "£37.50"], 
["formatted_sum_fees", "£3.30"], 
["formatted_price", "£27.50"]] 

Was passiert also, dass es dupliziert? Also ich will ich die oben Array, dies ändern (es wird anders, jedes Mal sein, so dass es um Duplikate entfernen bräuchten.):

[["formatted_sum_fees", "£5.60"], 
["formatted_price", "£46.50"], 
["formatted_sum_fees", "£4.50"], 
["formatted_price", "£37.50"], 
["formatted_sum_fees", "£3.30"], 
["formatted_price", "£27.50"] 

Alles andere, die nach dieser existiert eine Betrogene ist.

, was ich brauche ist die Gebühren und der Preis auf einem var zu sein, so dass ich es nach unten in die Datenbank speichern kann :)

Dank Sam

zusätzliche Heres die raketask.

require "nokogiri" 
require "open-uri" 
namespace :task do 
    task test: :environment do 
    ticketmaster_url = "http://www.ticketmaster.co.uk/derren-brown-miracle-glasgow-04-07-2016/event/370050789149169E?artistid=1408737&majorcatid=10002&minorcatid=53&tpab=-1" 
    doc = Nokogiri::HTML(open(ticketmaster_url)) 
    event_name = nil 
    ticket_price = nil 
    doc.xpath("//script[@type='text/javascript']/text()").each do |text| 
     if text.content =~ /more_options_on_polling/ 
     ticket_price = text.to_s.scan(/\"(formatted_(?:price|sum_fees))\":\"(.+?)\"/) 
     byebug 
     end 
    end 

    end 
end 

Antwort

1

Sie müssen nur uniq Methode auf Array hinzufügen, die Sie von Web-Schürf haben, die geben Sie ein uniq Werte von diesem Array, und dann können Sie leicht auf diesem Array zu iterieren, um Werte in der Datenbank zu speichern.

1

Sie können wie verwenden

[["formatted_sum_fees", "£5.60"], 
["formatted_price", "£46.50"], 
["formatted_sum_fees", "£4.50"], 
["formatted_price", "£37.50"], 
["formatted_sum_fees", "£3.30"], 
["formatted_price", "£27.50"], 
["formatted_sum_fees", "£3.30"], 
["formatted_price", "£27.50"], 
["formatted_sum_fees", "£4.50"], 
["formatted_price", "£37.50"], 
["formatted_sum_fees", "£4.50"], 
["formatted_price", "£37.50"], 
["formatted_sum_fees", "£4.50"], 
["formatted_price", "£37.50"], 
["formatted_sum_fees", "£5.60"], 
["formatted_price", "£46.50"], 
["formatted_sum_fees", "£4.50"], 
["formatted_price", "£37.50"], 
["formatted_sum_fees", "£5.60"], 
["formatted_price", "£46.50"], 
["formatted_sum_fees", "£4.50"], 
["formatted_price", "£37.50"], 
["formatted_sum_fees", "£3.30"], 
["formatted_price", "£27.50"]].uniq 

dann ist das Ergebnis:

[["formatted_sum_fees", "£5.60"], ["formatted_price", "£46.50"], ["formatted_sum_fees", "£4.50"], ["formatted_price", "£37.50"], ["formatted_sum_fees", "£3.30"], ["formatted_price", "£27.50"]] 
+0

Tut mir leid, dass ich das nicht verstehe? –