code: def download(query, num_results):
  	
  	# https://stackoverflow.com/questions/11818362/how-to-deal-with-unicode-string-in-url-in-python3
  	name = quote(query)
  
  	name  = name.replace(' ','+')
  	url = 'http://www.google.com/search?q=' + name
  	if num_results != 10:
  		url += '&num=' + str(num_results)  # adding this param might hint Google towards a bot
  	req = request.Request(url, headers={
  		'User-Agent' : choice(user_agents),
  		# 'Referer': 'google.com'
  	})
  	try:
  		response = request.urlopen(req)
  	except Exception:  # catch connection issues
  		# may also catch 503 rate limit exceed
  		print('ERROR\n')
  		traceback.print_exc()
  		return ''
  	# response.read is bytes in Py 3
  	if isPython2:
  		# trick: decode unicode as early as possible
  		data = response.read().decode('utf8', errors='ignore')
  	else:
  		data = str(response.read(), 'utf-8', errors='ignore')
  	# print(data)
  	return data
docs: downloads HTML after google search