Class: Seotracker
- Inherits:
-
Object
- Object
- Seotracker
- Defined in:
- lib/seotracker.rb
Defined Under Namespace
Constant Summary collapse
- USER_AGENT =
'Mac Safari'
- RESULTS =
10
Instance Method Summary collapse
- #debug(message) ⇒ Object
-
#get_position(site, word, region = Seotracker::Yandex::MOSCOW, pages = 200) ⇒ Object
получаем позиции получаем массив ссылок от парсера увеличиваем счетчик позиций, пока не найдем нужную ссылку 4 ссылки храним в массиве “последних”, чтобы не считать случайно выдранные парсером повторения.
-
#initialize ⇒ Seotracker
constructor
A new instance of Seotracker.
Constructor Details
#initialize ⇒ Seotracker
Returns a new instance of Seotracker.
10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/seotracker.rb', line 10 def initialize @agent = Mechanize.new @agent.user_agent_alias = Seotracker::USER_AGENT @agent.agent.http.verify_mode = OpenSSL::SSL::VERIFY_NONE @agent.agent.http.retry_change_requests = true @debug = true if @debug @log = Logger.new('log.txt') #@agent.log = @log если надо логировать mechnize end end |
Instance Method Details
#debug(message) ⇒ Object
52 53 54 |
# File 'lib/seotracker.rb', line 52 def debug() @log.debug() if @debug end |
#get_position(site, word, region = Seotracker::Yandex::MOSCOW, pages = 200) ⇒ Object
получаем позиции получаем массив ссылок от парсера увеличиваем счетчик позиций, пока не найдем нужную ссылку 4 ссылки храним в массиве “последних”, чтобы не считать случайно выдранные парсером повторения
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/seotracker.rb', line 28 def get_position(site, word, region = Seotracker::Yandex::MOSCOW, pages = 200) pos, found, start, hrefs = 0, false, 0, [] while (start < pages) && !found links = parse(word, start, region) start += RESULTS break if links == 'error' links.each do |l| href = get_link(l) next if href == '' || hrefs.include?(href) # храним 4 последние полученные ссылки hrefs = hrefs.pop(3) hrefs << href pos += 1 if href.rindex(site) && same_level(href, site) found = true break end end end found ? pos : 0 end |