An interesting search proxy is also SearX. Written in Python, it supports many backend engines and can be self hosted.
And here's a lightweight frontend/proxy I wrote in C for using Google search on low-end phones that can't render bloated HTML (SearX was too complicated to install):
http://searc.4a.si:7327/search?q=news
It's also nice that the structured never constantly changing HTML it produces makes it ideal to programatically query Google. Although you still run into captchas which it cannot solve if queries get too suspicious.
Also see SearXNG https://github.com/searxng/searxng/