Как и предполагал furas, я думаю, что HTML-код результата мог измениться с момента создания учебника.
Я получил его для работы с двумя изменениями в вашем коде:
Изменить строку:
linkelem = soup.select('.r a')
до
linkelem = []
for div in soup.find_all("div", {"class": "jfp3ef"}):
for link in div.select("a"):
linkelem.append(link)
Глядя на ответ, который мы получаем от Google, мы видим, что результирующие ссылки находятся в div с именем класса jfp3ef.
Затем вы должны добавить элемент к URL-адресу Google в последнем цикле
webbrowser.open('https://google.com' + linkelem[i].get('href'))