360 图片搜索 API


📍 2016-10-25 🏷️ #AlphaCut #开发手记

Storify 的编辑界面右侧有一个 Google Image 的 Tab,能够通过谷歌检索图片素材。今天上午发现,我们的编辑也会频繁用到百度去搜索任务相关的图片,于是准备给 Editor 增加一个关键字搜索图片的功能。

为什么是 360 搜索?

简单。

试着用 360 图片搜索“特朗普”,在 Chrome Network 里很容易就找到了下面这条记录:

多次搜索后发现,在 QueryString 的几个参数里面,q 和 correct 对应关键字,src = srp,sn 是起始 index ,我也不知道为什么是 30… pn 是每次搜索的图片数。

验证一下,带上参数以后,请求这个地址:

http://image.so.com/j?q=&src=srp&correct=&sn=&pn=

返回一个 JSON:

{
  "total": 1500,
  "end": false,
  "sid": "520f0774776aaf978d1f7ba1055694f5",
  "lastindex": 59,
  "ceg": 179068906,
  "list": [],
  "boxresult": null,
  "wordguess": null
}

搜索结果包含在 list 字段里,如其一:

{
  "id": "b5403314fab522a8c938d34b07bd3566",
  "qqface_down_url": false,
  "downurl": false,
  "grpmd5": false,
  "type": 0,
  "src": "1",
  "index": 30,
  "title": "<em>希拉里</em>疑似晕倒有谜团 美国大选有阴谋?<em>希拉里</em>",
  "litetitle": "",
  "width": "840",
  "height": "560",
  "imgsize": "251KB",
  "imgtype": "JPEG",
  "key": "bb4ae5a0af",
  "dspurl": "www.xilu.com",
  "link": "http://www.xilu.com/jstj/20160913/1000010000960889.html",
  "source": 2,
  "img": "http://img1.xilu.com/2016/0913/c7a5607fc38b5a24c7c51546f4556483.jpg",
  "thumb_bak": "http://p2.so.qhmsg.com/t01db084541041bc687.jpg",
  "thumb": "http://p2.so.qhmsg.com/t01db084541041bc687.jpg",
  "_thumb_bak": "http://p2.so.qhmsg.com/sdr/_240_/t01db084541041bc687.jpg",
  "_thumb": "http://p2.so.qhmsg.com/sdr/_240_/t01db084541041bc687.jpg",
  "thumbWidth": 360,
  "dsptime": "",
  "thumbHeight": 240,
  "grpcnt": "1",
  "fixedSize": false
}

接口调用说明

API

[GET] http://image.so.com/j?

参数

参数名称是否必须类型描述
q是String关键字
src是String-
correct是String关键字
sn是Number起始 Index
pn是Number图片数
zoom否Number图片尺寸,如 1 为大尺寸
color否String图片颜色,如 ‘red’
t否String动/静 态图片,如 ‘d’ 为动态

返回参数说明

参数名称描述
total图片总数
end是否为结尾
sid-
lastindex本次搜索结果最后一个图片的 index
ceg-
list搜索结果 list
boxresult-
wordguess-

AlphaCut Editor

我的处理逻辑很简单,用户输入关键字检索,用sn和pn两个参数控制分页。前端传keyword与page两个参数给后台,后台再请求 360 图片搜索 API。

蛤蛤,Bingo!