Das mag wie eine offensichtliche Frage scheinen, aber ich bin sehr neu. Ich versuche, Rotten Tomatoes top 100 movie Liste für eine einfache CLI-App zu kratzen. Alles geht gut bis zur Zeile hero.link, wo ich eine undefinierte Methode 'Attribut' für nilClass bekomme. Ich versuche nur, den Wert der href des Titellinks zu erhalten. Ich habe alles versucht, was ich verstehe und mehr, aber ich kann einfach nicht herausfinden, wie ich auf das zugreifen kann, was ich will, ohne die Attributmethode zu verwenden.Nokogiri undefined Methode 'Attribut' nilClass
Allerdings, wenn ich mitten in der Funktion mit hacken, kann ich es manuell eingeben, es scheint zu funktionieren.
def new_with_rank
self.get_top_page.css(".table tr").each do |e|
hero = Top100::Movie.new
hero.rank = e.css(".bold").text.delete!(".")
binding.pry
hero.rating = e.css(".tMeterScore").text.gsub!(/\u00A0/, "")
hero.title = e.css(".unstyled").text
hero.title.strip! #Don't know why I can't chain onto .text above
hero.reviews = e.css("td.right.hidden-xs").text
hero.link = e.css("td a").attribute("href").value
end
Top100::Movie.all.shift
Top100::Movie.all
binding.pry
end
Vielen Dank für Ihre Hilfe.
dazu Ändern Sie bitte Ihre hebeln Linie, 'es sei denn, binding.pry e.css ("td a")'. Dann können Sie sehen, warum e.css ("td a") null ist. Sieht so aus, als ob nicht alle trs einen Anker haben. – Ucpuzz
Vielen Dank! Dies führte mich zu dem Problem. Die Spaltentitel oben wurden über iteriert. Danke noch einmal! – TheDreamingTree145