class Scrapper

Public Class Methods

curr_pg() click to toggle source
# File lib/quote_box/scrape.rb, line 8
 def self.curr_pg
        @@curr_pg
end
curr_pg=(val) click to toggle source
# File lib/quote_box/scrape.rb, line 12
def self.curr_pg=(val)
        @@curr_pg=val
end
scrape_author(link) click to toggle source
# File lib/quote_box/scrape.rb, line 32
def self.scrape_author(link)
   page=Nokogiri::HTML(open("https://www.goodreads.com#{link}"))
           Author.new(
                    page.css(".authorName span[itemprop='name']")[0].text,
                    page.css("div.dataItem[itemprop='birthDate']").text,
                    page.css("span[id^='freeTextauthor'][style^='display']").text,
                    page.css("span.average[itemprop='ratingValue']").text,
                )
 end
scrape_keywords_list(phrase) click to toggle source
# File lib/quote_box/scrape.rb, line 16
def self.scrape_keywords_list(phrase)
           page=Nokogiri::HTML(open(phrase_to_search_string(phrase)))
           list=scrape_quote_lists_from_doc(page)
     end

Private Class Methods

phrase_to_search_string(phrase) click to toggle source
# File lib/quote_box/scrape.rb, line 73
    def self.phrase_to_search_string(phrase)
        words=phrase.split(' ')
        str=words.join('+')
search_string="https://www.goodreads.com/quotes/search?commit=Search&page=#{curr_pg}&q=#{str}"
     end
scrape_quote_lists_from_doc(doc) click to toggle source
# File lib/quote_box/scrape.rb, line 56
def self.scrape_quote_lists_from_doc(doc)
     quotes=[]
     quote_list=doc.css("div.quoteDetails")
     quote_list.each do |quote|
             
             q=Quote.new(
                     quote.css(".quoteText").text.strip.split("\n")[0],
                     quote.css("a[title='View this quote']").text,
                     quote.css(".quoteText").text.strip.split("\n")[4],
                     quote.css(".quoteText").text.strip.split("\n")[2])
     q.author_link= quote.css("a[href^='/author']")[0]['href']
     quotes<<q
  end 
      quotes
 end