python爬虫实现multipart/form-data;表单提交

fields 参数 接收值: [(key,value),(k,v)] 此参数接收普通键值对数据,将键值对转换为multipart/form-data格式
files 接收值: [(key,filename,value) 此参数接收文件上传数据,将其对转换为multipart/form-data格式
    def encode_multipart_formdata(fields, files):
        u"""构造multipart_formdata参数"""

        boundary = '---------------------------7e229e1a230202'
        crlf = '\r\n'
        l = []

        for (key, value) in fields:
            # name: 标签名
            # value : 标签对应的值
            l.append('--' + boundary)
            l.append('Content-Disposition: form-data; name="%s"' % key)
            l.append('')
            l.append(value)

        for (key, filename, value) in files:
            # key : 标签名
            # filename : 文件名
            # value 文件内容
            filename = filename
            l.append('--' + boundary)
            l.append(
                'Content-Disposition: form-data; name="%s"; filename="%s"' % (
                    key, filename
                )
            )
            l.append('Content-Type: image/x-png')
            l.append('')
            l.append(value)
        l.append('--' + boundary + '--')
        l.append('')
        # 以 \r\n 为分隔符将列表链接为字符串
        body = crlf.join(l)
        content_type = 'multipart/form-data; boundary=%s' % boundary
        return content_type, body

调用方式如下:

content_type, data = encode_multipart_formdata(
            [('checkVehicleCode', self.today_code), ('uploadFileType1', ''), ('btnUpload123Flag', '1'), ('fticket', ''),
             ('checkVehicleCodeImg', '')], [('policyAttachment1', name, image['img_data'])])
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值