henry_flower: A melancholy wolf (Default)
henry_flower ([personal profile] henry_flower) wrote2022-08-05 05:33 pm

Does ukraine have to pay back aid?

$ ./google-complete us does ukr
["does ukraine have nuclear weapons",
 "does ukraine have oil",
 "does ukraine have a navy",
 "does ukraine speak russian",
 "does ukraine have an air force",
 "does ukraine have to pay back aid",
 "does ukraine want to join nato",
 "does ukraine have nukes",
 "does ukraine have its own language",
 "does ukraine have submarines"]

Колись гоогл autocomplete видавав результата ув json'і, але зараз там кількість підказок менша за варіянт з тулбару ув кроумі, тому

#!/usr/bin/env -S ruby -ropen-uri -rnokogiri

abort "Usage: #{$0} [RUBYOPT=-v] country_code query …" if $*.size < 2

u = URI 'https://google.com/complete/search'
u.query = URI.encode_www_form({output:'toolbar',gl:$*[0], q:$*[1..]&.join(' ')})
warn u.to_s if $VERBOSE

pp Nokogiri(URI.open(u.to_s).read).css('suggestion').map {|v| v['data']}

(Скрипту потрібно gem install nokogiri.)

1й параметр там country codes, з яким можна бачити що цікавить русню:

$ ./google-complete ru когда
["когда день пива",
 "когда день железнодорожника",
 "когда убирать лук",
 "когда троица в 2022 году",
 "когда день строителя",
 "когда закончится война",
 "когда убирать чеснок",
 "когда откроется икеа",
 "когда закончится война на украине",
 "когда плачут цикады"]

vs.

$ ./google-complete ua когда
["когда день пива",
 "когда откроется макдональдс в киеве",
 "когда международный день пива",
 "когда гарри встретил салли",
 "когда началась война в украине",
 "когда началась вторая мировая война",
 "когда включат горячую воду киев",
 "когда плачут цикады",
 "когда откроют макдональдс",
 "когда его совсем не ждешь"]

Upd

Майже те саме, тільки коротше:

#!/bin/bash
curl 'https://google.com/complete/search?output=toolbar' \
     --data-urlencode "gl=$1" \
     --data-urlencode "q=${*:2}" -Gs | \
    nokogiri -e 'pp $_.css("suggestion").map {|v| v["data"]}'

Post a comment in response:

If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting