Парсинг Google на Ruby обычно означает open-uri + Nokogiri, затем список прокси, а потом и headless-браузер. Вот дешёвая альтернатива: один HTTP-запрос, который возвращает результаты Google в виде структурированного JSON — без Nokogiri и без прокси.
Почему самописный парсинг на Ruby обходится дорого
- Блокировки IP — Google блокирует IP дата-центров за минуты; придётся арендовать ротируемые резидентные прокси.
- CAPTCHA — их провоцирует объём, и расходы на решение накапливаются.
- Headless-браузеры — результаты с JS-рендерингом вынуждают переходить на Ferrum/Selenium, медленные и тяжёлые.
- Гниение Nokogiri — вёрстка Google смещается, и ваши CSS-селекторы тихо возвращают
nil.
Дешёвый способ: один запрос
Только стандартная библиотека — без gem:
require "net/http"
require "json"
uri = URI("https://api.serp.cheap/v1/search")
req = Net::HTTP::Post.new(uri, {
"X-API-Key" => ENV["SERP_CHEAP_API_KEY"],
"Content-Type" => "application/json",
})
req.body = { q: "best crm software", gl: "us" }.to_json
res = Net::HTTP.start(uri.host, uri.port, use_ssl: true) { |http| http.request(req) }
JSON.parse(res.body)["organic"].each do |r|
puts "#{r['position']}. #{r['title']}\n #{r['link']}"
end
Ни прокси, ни браузера, ни парсера, за которым нужно присматривать.
Или используйте официальный gem
gem install serpcheap
require "serpcheap"
client = SerpCheap::Client.new(ENV["SERP_CHEAP_API_KEY"])
res = client.search(q: "best crm software", gl: "us")
puts res.organic.first.title
На Rails? gem install serpcheap-rails добавляет инициализатор и конфигурацию, чтобы вы могли внедрять клиент где угодно.
Сколько это стоит
| Цена за запрос | |
|---|---|
| Свежий результат | $0.0006 |
| Результат из кэша | $0.0003 |
| Бесплатно при регистрации | 100 поисков |
Оплата по факту от $0.75/1k, кредиты действительны 12 месяцев — дешевле, чем резидентные прокси, нужные самописному парсеру. См. сравнение самых дешёвых SERP API.
Параметры, которые вам пригодятся
gl— страна результатов. См. локальное SEO по странам.hl— язык интерфейса.page— нумерация с 1; см. пагинацию.tbs— фильтр по времени для свежих результатов.
Дальше
Попробуйте serp.cheap
Скопируйте сниппет, добавьте свой ключ — и вы уже парсите Google из Ruby. 100 бесплатных поисков при регистрации — карта не нужна; далее оплата по факту от $0.75/1k, а кредиты действительны 12 месяцев.
- Получить бесплатный API-ключ →
- Предпочитаете оплату картой? serp.cheap также доступен на RapidAPI (
$0.90/1k) и Apify ($1.50/1k).