sorun Nokogiri Eleman anahtarının karma için atama Having

oy
0

Şimdi bir kaç ay yakut öğrenmeye çalışıyordum ve ben Nokogiri ile kazıma çalışıyorum. Ben TechCrunch.com kazıma ve her makalenin başlığı, url ve önizleme metin atlayacağım. Şimdiye kadar var:

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 (öykü) argüman olarak karma alır ve şöyle Makale sınıfını başlatmak için kullanır:

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

Ben TestScraper :: Scraper.new çalıştırın ( https://techcrunch.com ) .scrape_tech_crunch

Alırım:

[#<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/>

Gördüğünüz gibi bu makale sınıfının her örneği için uygun başlık ve url ile nesne oluşturur, ancak her makale örneğine aynı önizleme metni atama tutar. Ben tam makaleyi okumak için linke tıklayın önce almak makalenin küçük bir örnek demek önizleme tarafından 20 makaleleri kendi önizleme her biri olmalıdır.

Uzun yazı için üzgünüm. Ben bu işte yeniyim ve bu bir hakkı almak için görünmüyor olabilir. Önceden herhangi bir yardım için teşekkür ederiz.

-ruby n00b

Oluştur 24/10/2019 saat 13:03
kaynak kullanıcı
Diğer dillerde...                            

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