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.