Class: SearchLogger::GoogleParser::Result
- Inherits:
-
Object
- Object
- SearchLogger::GoogleParser::Result
- Defined in:
- lib/search_logger/google_parser/result.rb
Instance Attribute Summary collapse
-
#description ⇒ Object
Returns the value of attribute description.
-
#position ⇒ Object
Returns the value of attribute position.
-
#searched_keyword ⇒ Object
Returns the value of attribute searched_keyword.
-
#title ⇒ Object
Returns the value of attribute title.
-
#url ⇒ Object
Returns the value of attribute url.
Instance Method Summary collapse
- #as_ary ⇒ Object
-
#initialize(node, position, searched_keyword) ⇒ Result
constructor
A new instance of Result.
- #parse ⇒ Object
- #parse_news_result ⇒ Object
- #parse_normal_result ⇒ Object
- #sanitize_string(string) ⇒ Object
- #set_result(options = {}) ⇒ Object
Constructor Details
#initialize(node, position, searched_keyword) ⇒ Result
Returns a new instance of Result.
6 7 8 9 10 11 |
# File 'lib/search_logger/google_parser/result.rb', line 6 def initialize(node, position, searched_keyword) raise "No HTML node was specified" if node == false @position, @searched_keyword = position, searched_keyword @title, @url, @description = nil @node = node end |
Instance Attribute Details
#description ⇒ Object
Returns the value of attribute description.
4 5 6 |
# File 'lib/search_logger/google_parser/result.rb', line 4 def description @description end |
#position ⇒ Object
Returns the value of attribute position.
4 5 6 |
# File 'lib/search_logger/google_parser/result.rb', line 4 def position @position end |
#searched_keyword ⇒ Object
Returns the value of attribute searched_keyword.
4 5 6 |
# File 'lib/search_logger/google_parser/result.rb', line 4 def searched_keyword @searched_keyword end |
#title ⇒ Object
Returns the value of attribute title.
4 5 6 |
# File 'lib/search_logger/google_parser/result.rb', line 4 def title @title end |
#url ⇒ Object
Returns the value of attribute url.
4 5 6 |
# File 'lib/search_logger/google_parser/result.rb', line 4 def url @url end |
Instance Method Details
#as_ary ⇒ Object
19 20 21 22 23 24 25 26 |
# File 'lib/search_logger/google_parser/result.rb', line 19 def as_ary { title: title, url: url, description: description, position: position, searched_keyword: searched_keyword } end |
#parse ⇒ Object
13 14 15 16 17 |
# File 'lib/search_logger/google_parser/result.rb', line 13 def parse parse_normal_result if @node[:id].nil? || @node[:id] =~ /mbb/ parse_news_result if @node[:id] == "newsbox" self end |
#parse_news_result ⇒ Object
36 37 38 39 40 41 42 43 44 |
# File 'lib/search_logger/google_parser/result.rb', line 36 def parse_news_result self.tap do |e| title_link = @node.at_css('li.w0 span.tl a') description = @node.at_css('li.w0 span[dir=ltr]') e.title = sanitize_string title_link.content unless title_link.nil? e.url = sanitize_string title_link[:href] unless title_link.nil? e.description = sanitize_string description.content unless description.nil? end end |
#parse_normal_result ⇒ Object
28 29 30 31 32 33 34 |
# File 'lib/search_logger/google_parser/result.rb', line 28 def parse_normal_result self.tap do |e| e.title = sanitize_string @node.at_css('h3 a').content unless @node.at_css('h3 a').nil? e.url = sanitize_string @node.at_css('h3 a')[:href] unless @node.at_css('h3 a').nil? e.description = sanitize_string @node.at_css('div.s').content unless @node.at_css('div.s').nil? end end |
#sanitize_string(string) ⇒ Object
46 47 48 49 50 51 |
# File 'lib/search_logger/google_parser/result.rb', line 46 def sanitize_string(string) string.gsub(/&/, "&") .gsub(/[\s]{1,99}/, " ") .strip .gsub(/\s\.\.\.[\s]{0,1}[w]{0,3}.*- Cached - Similar/, " ...") end |
#set_result(options = {}) ⇒ Object
53 54 55 56 57 |
# File 'lib/search_logger/google_parser/result.rb', line 53 def set_result( = {}) @title = [:title] @url = [:url] @description = [:description] end |