Google Bildsuche: Wie erstelle ich eine umgekehrte Bildsuch-URL?

8

Wie kann ich programmgesteuert durch Java ein Bild in "eine Zeichenfolge" umwandeln, um es als Parameter für die Suche in Google-Bildersuche übergeben. Eigentlich habe ich eine base64-Konvertierung des Bildes gemacht, aber es unterscheidet sich von der, die Google in seiner Bildsuchmaschine macht. Ich habe eine solche Umwandlung gemacht (Java 7):

%Vor%

Die Ausgabe dieses einfachen Programms unterscheidet sich von der Google-Zeichenfolge in URL. Ich spreche über die Zeichenfolge, die nach tbs=sbi:AMhZZ...

geht     
maks 28.09.2011, 14:26
quelle

3 Antworten

11

Dies ist meine beste Schätzung für die Funktionsweise der Bildsuche:

Die Daten in der URL sind keine codierte Form des Bildes. Die Daten sind ein Bildfingerabdruck, der für die Fuzzy-Anpassung verwendet wird.

Wenn Sie ein Bild für die Suche hochladen, sollten Sie feststellen, dass es sich um einen Prozess in zwei Schritten handelt. Der erste Schritt lädt das Bild über die URL http://images.google.com/searchbyimage/upload hoch. Der Google-Server gibt den Fingerabdruck zurück. Der Browser wird dann auf eine Suchseite mit einer Abfragezeichenfolge basierend auf dem Fingerabdruck umgeleitet.

Sofern Google den Algorithmus zum Erstellen des Fingerabdrucks nicht veröffentlicht, können Sie die Suchabfragezeichenfolge nicht in Ihrer Anwendung generieren. Bis dahin können Sie Ihre Anwendung in das Upload-URI hochladen. Sie sollten in der Lage sein, die Antwort zu analysieren und die Abfragezeichenfolge zu konstruieren.

BEARBEITEN

Dies sind die Schlüssel und Werte, die beim Hochladen einer Datei an den Server gesendet werden.

%Vor%

"bih" und "biw" sehen aus wie Dimensionen, entsprechen jedoch nicht der hochgeladenen Datei.

Verwenden Sie diese Informationen auf eigene Gefahr. Es ist eine undokumentierte API, die Ihre Anwendung ändern und brechen könnte.

    
mikerobi 28.09.2011, 16:27
quelle
7
%Vor%     
Ajit 21.09.2013 19:47
quelle
2

Basierend auf @ Ajits Antwort, macht dies dasselbe, aber mit dem Befehl curl (Linux / Cygwin / etc)

%Vor%

Dies wird eine URL auf der Standardausgabe ausgeben. Sie können diese URL mit curl oder wget herunterladen, aber Sie müssen den User Agent möglicherweise in den eines grafischen Webbrowsers wie Chrome ändern.

    
golimar 31.10.2014 16:54
quelle

Tags und Links