module GoogleSuggest
Public Class Methods
suggest(query, country, language, negative_keywords=[])
click to toggle source
Main search function
# File lib/ruby-google-suggest.rb, line 62 def self.suggest(query, country, language, negative_keywords=[]) base_keywords = [] final_keywords = [] response = HTTParty.get("http://suggestqueries.google.com/complete/search?&output=toolbar&hl=#{language}&q=#{query}&gl=#{country}") doc = Nokogiri::XML(response.body) seed_keywords = doc.xpath("//suggestion").map { |xml| xml["data"]} seed_keywords.each do |seed_keyword| response = HTTParty.get("http://suggestqueries.google.com/complete/search?&output=toolbar&hl=#{language}&q=#{seed_keyword}&gl=#{country}") doc = Nokogiri::XML(response.body) base_keywords << doc.xpath("//suggestion").map { |xml| xml["data"]} end final_keywords = base_keywords.flatten.uniq.reject do |base_keyword| states = [] negative_keywords.each do |negative_keyword| states << base_keyword.include?(negative_keyword) end states.any?(true) end final_keywords end
suggest_deep(query, country, language, negative_keywords)
click to toggle source
Deep search
# File lib/ruby-google-suggest.rb, line 22 def self.suggest_deep(query, country, language, negative_keywords) deep_keywords = [] ALPHA.each do |letter| puts "looking at '#{letter}' variations" deep_keywords << suggest(query + " #{letter}", country, language, negative_keywords) end deep_keywords.flatten.uniq end
suggest_with_action(query, country, language, negative_keywords)
click to toggle source
Search using purchase / call-to-action keywords
# File lib/ruby-google-suggest.rb, line 52 def self.suggest_with_action(query, country, language, negative_keywords) do_keywords = [] DO.each do |do_keyword| puts "looking at '#{do_keyword}' variations" do_keywords << suggest(query + " #{do_keyword}", country, language, negative_keywords) end do_keywords.flatten.uniq end
suggest_with_considerations(query, country, language, negative_keywords)
click to toggle source
Search using consideration keywords
# File lib/ruby-google-suggest.rb, line 42 def self.suggest_with_considerations(query, country, language, negative_keywords) considerations_keywords = [] CONSIDERATIONS.each do |consideration| puts "looking at '#{consideration}' variations" considerations_keywords << suggest(query + " #{consideration}", country, language, negative_keywords) end considerations_keywords.flatten.uniq end
suggest_with_questions(query, country, language, negative_keywords)
click to toggle source
Search using question keywords
# File lib/ruby-google-suggest.rb, line 32 def self.suggest_with_questions(query, country, language, negative_keywords) questions_keywords = [] QUESTIONS.each do |question| puts "looking at '#{question}' variations" questions_keywords << suggest(query + " #{question}", country, language, negative_keywords) end questions_keywords.flatten.uniq end