Sha256: a3480ff3f96ca5305887e24c3f5b1fce2029aadf2ea71d036b74c3a60cd98ec0

Contents?: true

Size: 1.67 KB

Versions: 1

Compression:

Stored size: 1.67 KB

Contents

require "gsearch-parser/version"
require 'open-uri'
require 'nokogiri'

module GSearchParser
  def webSearch(query)
    GoogleSearch.new(query)
  end
end

###################################################
#                                                 #
#              GoogleSearch Class                 #
#                                                 #
###################################################
class GoogleSearch
  attr_accessor :results

  # Class initializer
  def initialize(query)
    # Initialize array
    @results = Array.new

    # TODO: Format query

    # TODO: Fetch page
    searchPage = Nokogiri::HTML(open("http://google.com/search?q=#{query}"))

    @results << Result.new('title', 'content', "http://www.google.com")

    # Iterate over all search result divs and parse content into Result objects,
    # and finally store these in the results array
    #searchPage.css('li.g > div.vsc').each do |result|
     # title = result.css('h3.r > a.l').content
      #content = result.css('div.s > span.st').content
      #@results << Result.new('title', 'content', "http://www.google.com")
    #end
  end

  # Iterator over results
  def each(&blk)
    @results.each(&blk)
  end

  ###################################################
  #                                                 #
  #                Result Class                     #
  #                                                 #
  ###################################################
  class Result
    attr_accessor :title, :content, :uri

    # Class initializer
    def initialize(title, content, uri)
      @title = title
      @content = content
      @uri = uri
    end

  end # Result

end # GoogleSearch

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
gsearch-parser-0.0.3 lib/gsearch-parser.rb