Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 谷歌网页缩略图绝对URI_Javascript_Jquery_Json_Google Chrome - Fatal编程技术网

Javascript 谷歌网页缩略图绝对URI

Javascript 谷歌网页缩略图绝对URI,javascript,jquery,json,google-chrome,Javascript,Jquery,Json,Google Chrome,如何在谷歌的搜索结果中获取页面URL的绝对URI或base64编码列表? 目标: 遍历URL数组: pages["pinelakedesign.com"]; pages["pinelakedesign.com/about"]; pages["pinelakedesign.com/contact"]; 输出: 谷歌缩略图1 谷歌缩略图2 谷歌缩略图 谷歌正在使用base64字符串编码的缩略图JPG图像的视觉搜索结果。2011年,此缩略图服务与以前的系统有所不同,该系统具有放大镜和绝对URI结

如何在谷歌的搜索结果中获取页面URL的绝对URI或base64编码列表?

目标:

遍历URL数组:

pages["pinelakedesign.com"];
pages["pinelakedesign.com/about"];
pages["pinelakedesign.com/contact"];
输出:

  • 谷歌缩略图1
  • 谷歌缩略图2
  • 谷歌缩略图
谷歌正在使用base64字符串编码的缩略图JPG图像的视觉搜索结果。2011年,此缩略图服务与以前的系统有所不同,该系统具有放大镜和绝对URI结构,如本问题所述:

我只想将网站中的页面列表平铺成谷歌缩略图,这样我一眼就能知道哪些页面已经被索引和缩略图,以及这些缩略图是什么样子的

编辑2011年11月5日

我发现对这个URL的调用返回带有base64编码、Google搜索结果标题、描述和URL的JSONP

https://clients1.google.com/webpagethumbnail?r=4&f=3&s=400:585&query=pine+lake+design&hl=en&gl=us&c=29&d=http%3A%2F%2Fwww.pinelakedesign.com%2F&b=1&j=google.nyc.c.j_pVK1Tu_gAbODsAKH0ZTuAw_3787232970_3&expi=17291,27615,28936,30049,30316,31215,32035,32271,32410,32940,33104,33194,33627,33788,33854,33907,33975,34103&a=2NT
query=参数是在Google中搜索的。d=是链接的目标,可能是缩略图的来源。s=400:585是高度和宽度。我不确定r=4和f=3做什么。修改这些变量中的任何一个都会导致404错误。我的直觉是expi=是一种基于不同参数值的校验和过期算法,但我不知道

返回的JSONP:

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":"<em>Pine Lake</em> specializes in small business website <em>design</em>, redesign and hosting. We have developed the Sungem content management system which allows our <b>...</b>","txtBox":{"h":57,"l":0,"t":58,"w":400}}]}],"url":"http://www.pinelakedesign.com/"}
)
google.nyc.c.j_pVK1Tu_gAbODsAKH0ZTuAw_3787232970_3({“s”:“b”,“b”:1,“质量”:100,“碎片”:[{“高度”:[300131],“imgs”:[“数据:图像/jpeg;base64,/9j/4AAQSkZ…”这是长base64编码…pa5r61f/9k=“”,“tbts”:[{“框”:{“h”:15,“l”:0,“t”:39,“w”:224 txt]:“Pine Lake专注于小型企业网站的设计、重新设计和托管。我们开发了Sungem内容管理系统,该系统允许我们的……”,“txtBox”:{“h”:57,“l”:0,“t”:58,“w”:400}}],“url”:http://www.pinelakedesign.com/"}
)

2011年11月8日更新

我正在寻找一些解决方案,如查看谷歌缩略图

2012年2月9日更新

使用Phantom JS看起来是实现服务器端远程快照的一个好方法,但它无助于确定如何获取Google的图像

2012年3月26日更新


我相信谷歌的搜索蜘蛛是桌面Chrome的无头版本,分辨率为1024px。Chrome蜘蛛允许蜘蛛执行Javascript、使用@font-face、CSS3选择器、查看Flash(甚至等待预加载达到100%)并在加载所有资产和DOM操作后对呈现的页面进行准确的快照。请谷歌的任何人加入进来确认或否认任何内容吗?

基本上,他们首先对查询url发出一个curl请求,然后得到缺少的“a”“html响应中的参数。然后他们使用它来构造正确的url,并对GoogleAPI进行api调用以获取图像。之后还有更复杂的工作,如将合成图像与ImageMagick合并以获得完整预览,但这是一个加号…

实际上,您可以完全删除expi参数。也可以删除b和j参数。看起来a参数是一个校验和,因为它是唯一一个在不同请求之间变化的参数。不知道如何轻松地确定a的值。只是注意到j是JSONP回调包装器@托德,当我试着去除j,b或expi时,我在Chrome上得到了一个404。您是在地址栏还是在javascript中发送请求?在地址栏中。。也许饼干也起到了作用?不幸的是,没有人及时提交答案,因此Stack Overflow获得了50分的奖金(我没有拿回,也没有人被允许赢得奖金)。我希望我能申领,但我认为我没有足够的帖子来诚实地接受它(你有一个很好的解决方案,它证明了这是可能的!这并不能完全回答这个问题,但因为Thumbtool有一个工作原型,他正在添加一个API,我将接受它。如果其他人发布了一种用Javascript直接获取Google文件的方法,我将很高兴将其更改为正确的答案。我同样对它印象深刻。)谷歌的俄文翻译就像我使用开源解决方案一样。ThanksI应该补充说,这已经不可能了,因为谷歌已经禁用了即时预览功能。