Αντιμετωπίζετε πρόβλημα με την ανάθεση Nokogiri στοιχείο για να hash κλειδί

ψήφοι
0

Έχω προσπαθήσει να μάθει ρουμπίνι για μερικούς μήνες τώρα και είμαι εξάσκηση απόξεση με Nokogiri. Είμαι ξύσιμο Techcrunch.com και αρπάζοντας τον τίτλο, url και προεπισκόπηση κειμένου κάθε άρθρου. Μέχρι στιγμής έχω:

require 'nokogiri'
require 'open-uri'

class TestScraper::Scraper
@doc = Nokogiri::HTML(open(https://techcrunch.com)


  def scrape_tech_crunch
    articles = @doc.css(h2.post-block__title).css(a)
    top_stories = articles.each do |story|
      stories = {
        :title => story.children.text.strip,
        :url => story.attribute(href).value,
        :preview => @doc.css(div.post-block__content).children.first.text
      }
      TestScraper::Article.new(stories)
    end
  end
end

TestScraper :: Article.new (ιστορίες) παίρνει το hash όπως στο επιχείρημα και το χρησιμοποιεί για να προετοιμαστεί το άρθρο κατηγορίας, όπως αυτό:

class TestScraper::Article
  attr_accessor :title, :url, :preview 

  @@all = []

  def initialize(hash)
    hash.each do |k, v|
      self.send #{k}=, v
    end
    @@all << self
  end

  def self.all
    @@all
  end
end

Όταν τρέχω TestScraper :: Scraper.new ( https://techcrunch.com ) .scrape_tech_crunch

Παίρνω:

[#<TestScraper::Article:0x00000000015f69e0
  @preview=
   \n\t\tSecurity researchers have found dozens of Android apps in the Google Play store serving ads to unsuspecting victims as part of a money-making scheme. ESET researchers found 42 apps conta
ining adware, \t,
  @title=
   Millions downloaded dozens of Android apps on Google Play infected with adware,
  @url=
   https://techcrunch.com/2019/10/24/millions-dozens-android-apps-adware/>,
 #<TestScraper::Article:0x00000000015f5658
  @preview=
   \n\t\tSecurity researchers have found dozens of Android apps in the Google Play store serving ads to unsuspecting victims as part of a money-making scheme. ESET researchers found 42 apps conta
ining adware, \t,
  @title=Netflix launches $4 mobile-only monthly plan in Malaysia,
  @url=
   https://techcrunch.com/2019/10/24/netflix-malaysia-mobile-only-cheap-plan/>

Όπως μπορείτε να δείτε Δημιουργεί αντιρρήσεις με τον κατάλληλο τίτλο και τη διεύθυνση URL για κάθε στιγμιότυπο της κλάσης του άρθρου, αλλά διατηρεί την εκχώρηση το ίδιο κείμενο προεπισκόπηση σε κάθε περίπτωση το άρθρο. Θα πρέπει να υπάρχουν 20 είδη το καθένα με το δικό του «προεπισκόπηση», από «προεπισκόπηση» εννοώ το μικρό δείγμα του προϊόντος μπορείτε να πάρετε πριν κάνετε κλικ στο σύνδεσμο για να διαβάσετε το πλήρες άρθρο.

Συγγνώμη για το μεγάλο θέση. Είμαι νέος σε αυτό και δεν φαίνεται να μπορεί να πάρει αυτό το δικαίωμα. Ευχαριστώ για οποιαδήποτε βοήθεια εκ των προτέρων.

-ruby n00b

Δημοσιεύθηκε 24/10/2019 στις 13:03
πηγή χρήστη
Σε άλλες γλώσσες...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more