2010-12-10 5 views
0

Ich versuche, in der Lage, den Quellcode einer Webseite nach dem Geben einer URL, um den Text für eine bestimmte Zeichenfolge zu analysieren, die darstellt und Bild-URL.Gewinn URL von Google Bildersuche in Android

fand ich diesen Beitrag, das ist ziemlich viel, was ich bin nach kann versuchen zu tun, aber es funktioniert nicht bekommen:

Post

Dies ist unter meinem Code.

public String fetchImage() throws ClientProtocolException, IOException { 
     HttpClient client = new DefaultHttpClient(); 
     HttpGet request = new HttpGet("www.google.co.uk/images?q=songbird+oasis"); 
     HttpResponse response = client.execute(request); 

     String html = ""; 
     InputStream in = response.getEntity().getContent(); 
     BufferedReader reader = new BufferedReader(new InputStreamReader(in)); 
     StringBuilder str = new StringBuilder(); 
     String line = null; 
     while((line = reader.readLine()) != null) 
     { 
      str.append(line); 
     } 
     in.close(); 
     html = str.toString(); 
     return html; 
    } 

aber aus irgendeinem Grund funktioniert es einfach nicht. Es zwingt mich, eine try catch-Anweisung zu verwenden, um die Methode aufzurufen. Sobald das funktioniert, denke ich, es wird einfach von hier aus mit Regex die Zeichenfolge "href="/imgres?imgurl=........jpg" finden, um die URL eines JPG-Bildes zu finden, um dann in einer Bildansicht angezeigt zu werden.

Bitte sagen Sie mir, wenn ich alles falsch mache.

+0

Sie müssen einen try-catch-Block verwenden, da die Methode Ausnahmen auslöst. Ausnahmen in Java werden überprüft. Nun, was genau funktioniert nicht? Erhalten Sie irgendwelche Ausnahmen, wenn Sie den Code ausführen? – kgiannakakis

Antwort

1

Erstens, Google has a search API, die eine bessere Lösung sein wird als das Kratzen, das Sie durchlaufen, da die API zuverlässig sein wird, und Ihre Lösung wird nicht sein.

Zweitens, use the BasicResponseHandler pattern für String-Antworten, wie es viel einfacher ist.

Drittens, etwas zu sagen, "einfach nicht funktioniert" ist eine ziemlich nutzlose Beschreibung für eine Support-Site wie diese. Wenn es abstürzt, wie kgiannakakis darauf hingewiesen hat, wirst du eine Ausnahme haben. Verwenden Sie adb logcat, DDMS oder die DDMS-Perspektive in Eclipse, um den Stack-Trace zu untersuchen und herauszufinden, was die Ausnahme ist. Das wird Ihnen Hinweise geben, wie Sie Ihr Problem lösen können.

+0

Das ist die Sache, die App stürzt nicht ab, ich war gerade nach einigem Ratschlag dran, ob das wirklich der richtige Weg ist. Mit dem Google API, wie verhält sich das zu android App? Die Dokumentation von dem Link, den Sie angegeben haben, scheint nur Beispiele in Bezug auf eine Webseite zu geben. – SamRowley

+0

@SamRowley: "Die App stürzt nicht ab" - was ist dann falsch? In Bezug auf die Google Image Search API habe ich mich einfach mit der Haustür ihrer Website verbunden. Hier finden Sie eine Verknüpfung zu ihrer JSON-API, die "zum Erstellen von Bildabfrageanwendungen in jeder Sprache verwendet werden kann, die mit einem JSON-codierten Ergebnissatz mit eingebetteten Statuscodes umgehen kann.": Http://code.google.com/apis/ imagesearch/v1/jsondevguide.html – CommonsWare

+0

Vielen Dank für die Antwort und Kommentare, die sie sehr hilfreich waren. – SamRowley