Pesquisa reversa de imagens do Google usando solicitação POST

Eu tenho um aplicativo que é basicamente um banco de dados de imagens armazenadas na minha unidade local. Às vezes, preciso encontrar uma versão de alta resolução ou a fonte da imagem na Web, e aspesquisa de imagem reversa é ideal para isso.

Infelizmente, o Google não tem uma API para isso, então tive que descobrir uma maneira de fazer isso manualmente. No momento, estou usando o Selenium, mas isso obviamente tem muita sobrecarga. Gostaria de uma solução simples usando urllib2 ou algo semelhante - envie uma solicitação POST, recupere o URL de pesquisa e, em seguida, posso passar esse URL parawebbrowser.open(url) para carregá-lo no meu navegador do sistema já aberto.

Aqui está o que estou usando agora:

gotUrl = QtCore.pyqtSignal(str)
filePath = "/mnt/Images/test.png"

browser = webdriver.Firefox()
browser.get('http://www.google.hr/imghp')

# Click "Search by image" icon
elem = browser.find_element_by_class_name('gsst_a')
elem.click()

# Switch from "Paste image URL" to "Upload an image"
browser.execute_script("google.qb.ti(true);return false")

# Set the path of the local file and submit
elem = browser.find_element_by_id("qbfile")
elem.send_keys(filePath)

# Get the resulting URL and make sure it's displayed in English
browser.get(browser.current_url+"&hl=en")
try:
    # If there are multiple image sizes, we want the URL for the "All sizes" page
    elem = browser.find_element_by_link_text("All sizes")
    elem.click()
    gotUrl.emit(browser.current_url)
except:
    gotUrl.emit(browser.current_url)
browser.quit()

questionAnswers(1)

yourAnswerToTheQuestion