Module: DuckDuckGo
- Defined in:
- lib/duckduckgo/result.rb,
lib/duckduckgo/search.rb,
lib/duckduckgo/version.rb
Defined Under Namespace
Classes: SearchResult
Constant Summary collapse
- RESOURCE_URL =
'https://duckduckgo.com/html/?q='- VERSION =
"0.1.0"
Class Method Summary collapse
Class Method Details
.search(query) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/duckduckgo/search.rb', line 9 def self.search(query) results = [] html = open("#{RESOURCE_URL}#{CGI::escape(query)}") document = Nokogiri::HTML(html) document.css('.result').each do |result| title_element = result.css('.result__a').first raise 'Could not find result link element!' if title_element.nil? title = title_element.text raise 'Could not find result title!' if title.nil? uri = title_element['href'] raise 'Could not find result URL!' if uri.nil? description_element = result.css('.result__snippet').first raise 'Could not find result description element!' if description_element.nil? description = description_element.text raise 'Could not find result description!' if description.nil? results << SearchResult.new(uri, title, description) end return results end |