Проверка количества проиндексированных страниц:

Posted on March 27, 2009
Разные поисковые машины по разному индексируют сайт. Для того, что-бы узнать сколько страниц проиндексировал поисковик существуют различные способы.
Недавно мой блог был побанен ндексом (до сих пор не понимаю за что) и после написания пары писем в саппорт я решил написать простой скрипт для отслеживания того, появились ли в выдачи страницы с моего блога:

require 'hpricot'
require 'mechanize'

class YaChecker
  class << self
    def get_pages(url)
      url = "http://m.yandex.ru/search?query=host%3D%22www.#{url}%22%20|%20host%3D%22#{url}%22"
      agent = WWW::Mechanize.new
      agent.user_agent_alias = 'Mac Safari'
      utf_page = agent.get_file(url)
      doc = Hpricot(utf_page)
      pages = doc.search("//div[@class='result-txt']")
      result = pages[0] 

      return 0 if result.inner_text == "\nИскомая комбинация слов нигде не встречается\n"
      return result.inner_text.gsub(/Нашлось/,'').to_i
    end
  end
end
Воодушевившись результатом я написал так-же проверялку для Google:

require 'hpricot'
require 'mechanize'

class GooChecker
  class << self
    def get_pages(url)
      url = "http://www.google.ru/search?hl=ru&q=site%3A#{url}+|+site%3Awww.#{url}&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA+%D0%B2+Google&lr=&aq=f&oq="
      agent = WWW::Mechanize.new
      agent.user_agent_alias = 'Mac Safari'
      utf_page = agent.get_file(url)
      doc = Hpricot(utf_page)
      pages = doc.search("//div[@id='ssb']/p/b[3]")
      return 0 if pages[0].nil?
      pages[0].innerText.to_i
    end
  end
end
Если кому понадобится, то пользуйтесь на здоровье