Парс выдачи Google, как обойти блокировку?
Заголовки Accept и Accept-Language зависят от User-Agent. Вы меняете User-Agent, и Гугл может фиксировать это расхождение. Попробуйте для начала вместо getUseragent() задать константную строку. Потом, если вам так нужно менять User-Agent, то посмотрите как это делает Random Agent Spoofer, он согласут все заголовки с фейковым User-Agent, возможно придется лезть в его исходники, поэтому проще с константной строкой.Попробуйте еще убрать ru-RU из Accept-Language. Это не означает, что пропадут русскоязычные результаты в выдаче или будут проблемы с кодировкой. У меня вообще вся система и браузер не локализованы, это не мешает гуглить по-русски. https://www.google.ru/search?q=q&num=100 такие запросы шлют только боты. В браузере при поиске с главной страницы Гугала идет запрос огромной длинны с десятком параметров, в том числе, какие-то уникальные хэши. Попробуйте сначала запросить главную, принять и записать все cookies, выдрать из формы поиска url, по которому уйдет запрос, добавьте туда q=blabla и посылайте новый запрос со всеми cookie. Кстати, на каждый запрос приходят новые cookie и их бы неплохо использовать в следующем запросе, как бы это происходило в реальном браузере, это увеличит время/количество_запросов до бана. Не запрашивайте сразу num=100, вам так проще парсить, а Гуглу так проще банить тех, кто парсит. Уберите этот параметр и выкачивайте SERP по одной странице. Между запросами делайте паузы в несколько секунд как серфил бы живой человек. При этом возможно параллельно работать с другим запросом из другой сессии с другим набором cookies и User-Agent, как будто  несколько человек сидят с одного IP из-за NAT. Но, вообще, выборка SERP глубже одной-двух страниц сильно увеличивают подозрение в ваш адрес и приближают капчу, постарайтесь по возможности вообще отказаться от выборки 100 результатов ради того чтобы парсер работал хоть как-то. Перед тем как делать все это, запустите Wireshark и сравните в нем вживую два запроса: один из браузера, другой от вашего скрипта в его текущей реализации, возможно какие-то различия бросятся в глаза сразу.Даже при соблюдении всех условий, бан неизбежен рано или поздно, это зависит от объемов трафика, который вы создаете с одного IP. С этим уже ничего не сделать. Спасет только большой пул проксей.

Попробуйте скопировать все заголовки из браузера сразу в cURL формате для вашей консоли.