Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Get more than 8 image search results

I'm using Google image search API in my Android app to search images. It is working fine, but I'm getting only 8 results of query.

How can I get more than 8 images? (Or is there any better way to search images?)

Below is my code:

   public class getImagesTask extends AsyncTask<Void, Void, Void>
       {
           JSONObject json;
           ProgressDialog dialog;

           @Override
           protected void onPreExecute() {
               // TODO Auto-generated method stub
               super.onPreExecute();

               dialog = ProgressDialog.show(GoogleSearchAPIExampleActivity.this, "", "Please wait...");
           }

           @Override
           protected Void doInBackground(Void... params) {
               // TODO Auto-generated method stub

               URL url;
               try {
                   url = new URL("https://ajax.googleapis.com/ajax/services/search/images?" +
                    "v=1.0&q="+strSearch+"&rsz=8" ); //&key=ABQIAAAADxhJjHRvoeM2WF3nxP5rCBRcGWwHZ9XQzXD3SWg04vbBlJ3EWxR0b0NVPhZ4xmhQVm3uUBvvRF-VAA&userip=192.168.0.172");

               URLConnection connection = url.openConnection();
               connection.addRequestProperty("Referer", "http://technotalkative.com");

               String line;
               StringBuilder builder = new StringBuilder();
               BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
               while((line = reader.readLine()) != null) {
                   builder.append(line);
               }

               System.out.println("Builder string => "+builder.toString());

               json = new JSONObject(builder.toString());
               } catch (MalformedURLException e) {
                   // TODO Auto-generated catch block
                   e.printStackTrace();
               } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (JSONException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
               return null;
           }

           @Override
           protected void onPostExecute(Void result) {
               // TODO Auto-generated method stub
               super.onPostExecute(result);

               if(dialog.isShowing())
               {
                   dialog.dismiss();
               }

               try {
                   JSONObject responseObject = json.getJSONObject("responseData");
                   JSONArray resultArray = responseObject.getJSONArray("results");

                   listImages = getImageList(resultArray);
                   SetListViewAdapter(listImages);
                   System.out.println("Result array length => "+resultArray.length());
               } catch (JSONException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

           }
       }

Logcat:

10 - 22 09: 32: 08.020: I / System.out(2614): Builder string = > {
"responseData": {
    "results": [{
            "GsearchResultClass": "GimageSearch",
            "width": "948",
            "height": "532",
            "imageId": "ANd9GcRjL9QC6U-D2kjCE3NHvmkaDj1U3j46xsqrdsT3xwVkBdcxcV-jakbK2so",
            "tbWidth": "148",
            "tbHeight": "83",
            "unescapedUrl": "http://media.npr.org/assets/img/2013/05/22/ap401533991888_wide-870363ccd3eb24d332ecc17b6bb44a351a5da196-s6-c30.jpg",
            "url": "http://media.npr.org/assets/img/2013/05/22/ap401533991888_wide-870363ccd3eb24d332ecc17b6bb44a351a5da196-s6-c30.jpg",
            "visibleUrl": "www.npr.org",
            "title": "Polio Outbreak In Kenya: \u003cb\u003eA\u003c/b\u003e Threat To Global Eradication : Shots \u003cb\u003e...\u003c/b\u003e",
            "titleNoFormatting": "Polio Outbreak In Kenya: A Threat To Global Eradication : Shots ...",
            "originalContextUrl": "http://www.npr.org/blogs/health/2013/05/22/185996377/polio-outbreak-in-kenya-a-threat-to-global-eradication",
            "content": "Polio Outbreak In Kenya: \u003cb\u003eA\u003c/b\u003e Threat To Global Eradication : Shots",
            "contentNoFormatting": "Polio Outbreak In Kenya: A Threat To Global Eradication : Shots",
            "tbUrl": "http://t1.gstatic.com/images?q\u003dtbn:ANd9GcRjL9QC6U-D2kjCE3NHvmkaDj1U3j46xsqrdsT3xwVkBdcxcV-jakbK2so"
        }, {
            "GsearchResultClass": "GimageSearch",
            "width": "600",
            "height": "424",
            "imageId": "ANd9GcQKbMdb_XZJ1TqEcYBz3TC-psl-NYRwzMzBRDU1tmB8dpUOWlOp0l2IHII",
            "tbWidth": "135",
            "tbHeight": "95",
            "unescapedUrl": "http://graphics8.nytimes.com/images/2013/05/31/arts/artsspecial/31iht-rfrcballet31A/31iht-rfrcballet31A-articleLarge.jpg",
            "url": "http://graphics8.nytimes.com/images/2013/05/31/arts/artsspecial/31iht-rfrcballet31A/31iht-rfrcballet31A-articleLarge.jpg",
            "visibleUrl": "www.nytimes.com",
            "title": "\u003cb\u003eA\u003c/b\u003e Fresh Era of Wit and Innovation in Ballet - NYTimes.",
            "titleNoFormatting": "A Fresh Era of Wit and Innovation in Ballet - NYTimes.",
            "originalContextUrl": "http://www.nytimes.com/2013/05/31/arts/artsspecial/A-Fresh-Era-of-Wit-and-Innovation-in-Ballet.html",
            "content": "\u003cb\u003eA\u003c/b\u003e Fresh Era of Wit and Innovation in Ballet - NYTimes.",
            "contentNoFormatting": "A Fresh Era of Wit and Innovation in Ballet - NYTimes.",
            "tbUrl": "http://t0.gstatic.com/images?q\u003dtbn:ANd9GcQKbMdb_XZJ1TqEcYBz3TC-psl-NYRwzMzBRDU1tmB8dpUOWlOp0l2IHII"
        }, {
            "GsearchResultClass": "GimageSearch",
            "width": "425",
            "height": "283",
            "imageId": "ANd9GcSCIN0Dn0f2rfd-GpdhQ9TuhMt3O0i2X7JKAFSARBFm460PQ1Bd-5eNSsk",
            "tbWidth": "126",
            "tbHeight": "84",
            "unescapedUrl": "http://www.usnews.com/pubdbimages/image/45181/FE_DA_0307_Marine425x283.jpg",
            "url": "http://www.usnews.com/pubdbimages/image/45181/FE_DA_0307_Marine425x283.jpg",
            "visibleUrl": "www.usnews.com",
            "title": "Can Old Marine Strategies Fight \u003cb\u003ea\u003c/b\u003e New Pacific War? - US News and \u003cb\u003e...\u003c/b\u003e",
            "titleNoFormatting": "Can Old Marine Strategies Fight a New Pacific War? - US News and ...",
            "originalContextUrl": "http://www.usnews.com/news/articles/2013/03/07/can-old-marine-strategies-fight-a-new-pacific-war",
            "content": "Can Old Marine Strategies Fight \u003cb\u003ea\u003c/b\u003e New Pacific War? - US News and",
            "contentNoFormatting": "Can Old Marine Strategies Fight a New Pacific War? - US News and",
            "tbUrl": "http://t2.gstatic.com/images?q\u003dtbn:ANd9GcSCIN0Dn0f2rfd-GpdhQ9TuhMt3O0i2X7JKAFSARBFm460PQ1Bd-5eNSsk"
        }, {
            "GsearchResultClass": "GimageSearch",
            "width": "460",
            "height": "276",
            "imageId": "ANd9GcTBwAl3G4zqkRw1qx4gMs6gfWfR8YAz-X7HhW6GkfJEBADHDIdDUBpxHhA",
            "tbWidth": "128",
            "tbHeight": "77",
            "unescapedUrl": "http://static.guim.co.uk/sys-images/Arts/Arts_/Pictures/2013/2/12/1360689033304/A-2002-version-of-The-Rit-010.jpg",
            "url": "http://static.guim.co.uk/sys-images/Arts/Arts_/Pictures/2013/2/12/1360689033304/A-2002-version-of-The-Rit-010.jpg",
            "visibleUrl": "www.theguardian.com",
            "title": "The Rite of Spring: \u0026#39;The work of \u003cb\u003ea\u003c/b\u003e madman\u0026#39; | Music | The Guardian",
            "titleNoFormatting": "The Rite of Spring: \u0026#39;The work of a madman\u0026#39; | Music | The Guardian",
            "originalContextUrl": "http://www.theguardian.com/music/2013/feb/12/rite-of-spring-stravinsky",
            "content": "The Rite of Spring: \u00
like image 847
thumber nirmal Avatar asked Oct 03 '22 15:10

thumber nirmal


1 Answers

  url = new URL("https://ajax.googleapis.com/ajax/services/search/images?" +
                        "v=1.0&q="+strSearch+"&rsz=8&start=0" );

Here you can get 64 image results only using this API.

Now here what happens, if you set start variable=9, it will add one more image in output, but the first image will gone (as we can get only 8 images per page).

Now when you set start variable=8, you will get next 8 images (page number2 with next 8 images).

Again, if you set start variable=16, you will get next 8 images (page number3 with next 8 images).

Again, if you set start variable=24, you will get next 8 images (page number4 with next 8 images) and so on.

You will get images till this URL.

 url = new URL("https://ajax.googleapis.com/ajax/services/search/images?" +
                            "v=1.0&q="+strSearch+"&rsz=8&start=56" );
(8th page)

Now from here if you increment start variable such as start=57, there will be no output.

like image 196
Looking Forward Avatar answered Oct 07 '22 22:10

Looking Forward