Class: SynonymScrapper::Educalingo

Inherits:
Scrapper
  • Object
show all
Defined in:
lib/synonym_scrapper/educalingo.rb

Overview

Scrapper for Educalingo’s website

Constant Summary

Constants inherited from Scrapper

Scrapper::USER_AGENTS

Instance Attribute Summary

Attributes inherited from Scrapper

#base_url, #max_retries, #retries_left

Instance Method Summary collapse

Methods inherited from Scrapper

#call, #retry_call

Constructor Details

#initializeEducalingo

Initialize the parent Scrapper Class



14
15
16
# File 'lib/synonym_scrapper/educalingo.rb', line 14

def initialize()
	super(5, "https://educalingo.com/en/dic-es/")
end

Instance Method Details

#build_call_url(word) ⇒ Object

Build the url to be called using this class’ base_url and a word. Returns an url to where word‘s synonyms can be obtained.



22
23
24
# File 'lib/synonym_scrapper/educalingo.rb', line 22

def build_call_url(word)
	URI.parse(URI.escape(base_url + word))
end

#synonyms(word, options = {}) ⇒ Object

Obtain synonyms of a word from Educalingo.



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/synonym_scrapper/educalingo.rb', line 29

def synonyms(word, options = {})
	response = call(word)
	doc = Nokogiri.HTML(response)
	synonyms = Array.new
	doc.css('#wordcloud1 > span').each do |synonym|
		score = Integer(synonym.values[0])

		synonyms.push({
			word: synonym.inner_html,
			score: score
		}) unless score < 75
		# A minimum score of 75 is considered because educalingo
		# tends to have completely unrelated words around this score
	end

	return synonyms
end