title: Google webpage thumbnails absolute URI
body: <p><strong>How can I get a list of either the absolute URI's or base64 encodings for page URL's in Google's search results?</strong></p>
  
  <p>Goal:</p>
  
  <p>Iterate through URL array:</p>
  
  <pre><code>pages["pinelakedesign.com"];
  pages["pinelakedesign.com/about"];
  pages["pinelakedesign.com/contact"];
  </code></pre>
  
  <p>Output:</p>
  
  <ul>
  <li>Google thumbnail 1</li>
  <li>Google thumbnail 2</li>
  <li>Google thumbnail N</li>
  </ul>
  
  <p>Google is using base64 string encoding of thumbnail JPG images for their visual search results.  In 2011 this thumbnail service changed from the previous system with the magnifying glass and absolute URI construction described in this question:
  <a href="https://stackoverflow.com/questions/6881319/google-web-thumbnails">https://stackoverflow.com/questions/6881319/google-web-thumbnails</a></p>
  
  <p>I just want to tile out a list of the the pages in a website as Google thumbnails so I know which pages have been indexed and thumbnailed at a glance and what those thumbs all look like.</p>
  
  <p><img src="https://i.stack.imgur.com/HosFp.jpg" alt="Google search results thumbnail preview"></p>
  
  <p><strong>Edit Nov 5, 2011</strong></p>
  
  <p>I identified that a call to this URL returns JSONP with the base64 encoding, Google search result title, description and URL.  </p>
  
  <pre><code>https://clients1.google.com/webpagethumbnail?r=4&amp;f=3&amp;s=400:585&amp;query=pine+lake+design&amp;hl=en&amp;gl=us&amp;c=29&amp;d=http%3A%2F%2Fwww.pinelakedesign.com%2F&amp;b=1&amp;j=google.nyc.c.j_pVK1Tu_gAbODsAKH0ZTuAw_3787232970_3&amp;expi=17291,27615,28936,30049,30316,31215,32035,32271,32410,32940,33104,33194,33627,33788,33854,33907,33975,34103&amp;a=2NT
  </code></pre>
  
  <p>The query= parameter is what was searched in Google. d= is the destination of the link, and possibly the source of the thumbnail.  s=400:585 is the height and width.  I am not sure what r=4 and f=3 do.  Modifying any of these variables results in a 404 error.  My hunch is that the expi= is some sort of checksum expiration algorithm based on the different parameter values but I don't know.</p>
  
  <p>Returned JSONP:</p>
  
  <pre><code>google.nyc.c.j_pVK1Tu_gAbODsAKH0ZTuAw_3787232970_3({"s":"b","b":1,"quality":100,"shards":[{"heights":[300,131],"imgs":["data:image/jpeg;base64,/9j/4AAQSkZ ...THIS IS THE LONG BASE64 ENCONDING ...pa5r61f/9k="],"tbts":[{"box":{"h":15,"l":0,"t":39,"w":224},"txt":"&lt;em&gt;Pine Lake&lt;/em&gt; specializes in small business website &lt;em&gt;design&lt;/em&gt;, redesign and hosting. We have developed the Sungem content management system which allows our &lt;b&gt;...&lt;/b&gt;","txtBox":{"h":57,"l":0,"t":58,"w":400}}]}],"url":"http://www.pinelakedesign.com/"}
  )
  </code></pre>
  
  <hr>
  
  <p><strong>Update Nov 8, 2011</strong></p>
  
  <p>I am looking for some solution like <a href="http://embed.ly/docs/explore/preview?url=http://blog.embed.ly/31814817&amp;maxwidth=500" rel="nofollow noreferrer">emedly's Preview</a> for viewing Google thumbnails.</p>
  
  <p><strong>Update Feb 9, 2012</strong></p>
  
  <p>Using Phantom JS looks like a good way to achieve server-side remote snapshots but it does not help identify how to get at Google's images.</p>
  
  <p><strong>Update Mar 26, 2012</strong></p>
  
  <p>I believe Google's search spider is a headless version of desktop Chrome running 1024px wide resolution.  A Chrome spider would allow the spider to execute Javascript, use @font-face, CSS3 selectors, view Flash (even waiting for preloader to reaches 100%) and take accurate snapshots of the rendered pages after loading all assets and DOM manipulation.  Would anybody from Google please weigh in to confirm or deny anything?</p>