1688 以图搜货

仅供学习,禁止商用

  1. 具体的流程如下:
    1. 获取 需要 b64 编码的时间戳
    2. 获取 必须传输的参数 signature policy 同时将生成的 图片 key 返回
    3. 上传图片
    4. 拼接查询的结果
  2. 获取b64编码时间戳
def get_dateset(self):
    '''
    获取加密时间
    :return:
    '''
    url = "https://open-s.1688.com/openservice/.htm?"  # 获取加密时间
    params = {
        "serviceIds": "cbu.searchweb.config.system.currenttime",
        "outfmt": "json",
    }

    status, data = request_get(url, params, self.headers)
    return status, data

      3. 获取 signature policy 相关参数 

    def get_sign(self, data_set):
        '''
        用于获取 sign 用于加密
        :return:
        '''
        url = 'https://open-s.1688.com/openservice/ossDataService'
        key = str(base64.b64decode("cGNfdHVzb3U=".encode("utf-8")), encoding="utf-8")
        appkey = "{};{}".format(key, str(data_set))

        params = {
            "appName": key,
            "appKey": base64.b64encode(appkey.encode("utf-8")),
        }

        status, data = request_get(url, params, self.headers)

        data = data.get('data', {})

        signature = data.get('signature', '')
        policy = data.get('policy', '')
        accessid = data.get('accessid', '')

        return status, signature, policy, accessid

4. upload image

    def upload_img(self, filename, signature, policy, accessid):
        """
        用于上传图片
        :return:
        """

        url = 'https://cbusearch.oss-cn-shanghai.aliyuncs.com/'
        key = "cbuimgsearch/" + get_random_str(10) + str(int(time.time()) * 1000) + ".jepg"
        name = get_random_str(5) + ".jepg"

        files = {
            "name": (None, name),
            "key": (None, key),
            "policy": (None, policy),
            "OSSAccessKeyId": (None, accessid),
            "success_action_status": (None, 200),
            "callback": (None, ""),
            "signature": (None, signature),
            "file": (name, open(filename, "rb").read())
        }

        status, res = request_post(url, data=None, files=files, headers=self.headers)

        return status, key
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值