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...
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.
Basierend auf @ Ajits Antwort, macht dies dasselbe, aber mit dem Befehl curl
(Linux / Cygwin / etc)
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.
Tags und Links java google-image-search