Google-Bildersuche mit POST-Anfrage umkehren

Ich habe eine App, die im Grunde eine Datenbank mit Bildern ist, die auf meinem lokalen Laufwerk gespeichert sind. Manchmal muss ich eine Version mit höherer Auflösung oder die Webquelle eines Bildes und die von Google findenumgekehrte Bildsuche ist dafür ideal.

Leider hat Google keine API dafür, daher musste ich eine Möglichkeit finden, dies manuell zu tun. Im Moment benutze ich Selen, aber das hat offensichtlich viel Overhead. Ich hätte gerne eine einfache Lösung mit urllib2 oder ähnlichem - sende eine POST-Anfrage, erhalte die Such-URL zurück und dann kann ich diese URL einfach an weiterleitenwebbrowser.open(url) um es in meinen bereits geöffneten Systembrowser zu laden.

Folgendes verwende ich gerade:

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()

Antworten auf die Frage(1)

Ihre Antwort auf die Frage