V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
wkx556874
V2EX  ›  问与答

求教一个 Python 爬虫的问题关于 form-data 的数据怎么通过 post 上传

  •  1
     
  •   wkx556874 · 2021-03-28 15:18:22 +08:00 · 769 次点击
    这是一个创建于 1328 天前的主题,其中的信息可能已经有所发展或是发生改变。
    想写一个爬虫自动提交修改某平台的人员信息,
    所有信息都搞懂了,但是有一项是照片。
    其他例如手机号那些数据直接在 data 字典里面声明 data={"mobile":"13000000000"}就行,
    这是抓包抓到的数据:
    Content-Disposition: form-data; name="mobile"
    Content-Length: 11 13000000000
    然后直接 session.post(url, data=data) 就直接修改了,
    但是照片应该怎么弄呢?
    这是抓包抓到的数据:
    Content-Disposition: form-data; name="photo"; filename="pic_after_crop_20210328145606.jpg"
    Content-Type: multipart/mixed; boundary=BbC04y
    Content-Length: 205722 <file>
    我这样写,修改没用。。
    files = {"file": ("1.png", open("1.png", "rb"), "image/png")}
    data={"photo": "1.png"}
    session.post(url, data=data, files=files)
    应该怎么写呢?我查了很多文档也没找到。。
    只好来问问大佬们。
    wkx556874
        1
    wkx556874  
    OP
       2021-03-28 15:24:43 +08:00
    求大佬们解答下呀。。
    paidaxtis
        2
    paidaxtis  
       2021-03-28 15:46:22 +08:00 via Android
    import requests

    url = "接口 url"

    payload={}
    files=[
      ('file',('图片名字.jpg',open('图片 url','rb'),'image/jpeg'))
    ]
    headers = {}

    response = requests.request("POST", url, headers=headers, data=payload, files=files)

    print(response.text)
    paidaxtis
        3
    paidaxtis  
       2021-03-28 15:47:58 +08:00 via Android
    postman 自动生成的代码,我自己测试接口这样写是可以的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   955 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 21:27 · PVG 05:27 · LAX 13:27 · JFK 16:27
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.