跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 求教一个 Python 关于 form-data 的数据怎么通过 requests.post 上传
未分類
22 3 月 2021

求教一个 Python 关于 form-data 的数据怎么通过 requests.post 上传

求教一个 Python 关于 form-data 的数据怎么通过 requests.post 上传

資深大佬 : wkx556874 1

想写一个爬虫自动提交修改某平台的人员信息,
所有信息都搞懂了,但是有一项是照片。
其他例如手机号那些数据直接在 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)
应该怎么写呢?我查了很多文档也没找到。。
只好来问问大佬们。
大佬有話說 (10)

  • 主 資深大佬 : wkx556874

    搞不懂呀。。。

  • 資深大佬 : ch2

    requests 也不是什么形式的请求都能很简单就发出去的。http 本质上是个字符串构造协议,你自己拼接一个 body,然后 requests.post(url,data=body)就行了,然后搞个 fiddler web debugger 看看报文构造的对不对

  • 資深大佬 : 676529483

    >>> url = ‘https://httpbin.org/post’
    >>> files = {‘file’: (“1.png”, open(‘1.png’, ‘rb’)), “photo”: “1.png”}

    >>> r = requests.post(url, files=files)
    关键是 data 和 files 不要一起传,会默认 content-type 为 www-url-encode

  • 資深大佬 : SenLief

    官网有 https://www.osgeo.cn/requests/user/quickstart.html#more-complicated-post-requests
    小文件可以用上 3 的 files 参数,
    大文件需要一个一个包 requests-toolbelt

  • 資深大佬 : renmu123

    直接 post 文件,或者用 file 参数,但是你可能要手动修改 contetn-type 参数

  • 資深大佬 : cra2y4ngel

    requests 在提 multi-part/form-data 上面是有些许缺陷的, 可以通过这样的方式传 data 看看

    data = {“photo”: “1.png”}

    files = {
    “file”: (“1.png”, open(“1.png”, “rb”), “image/png”),
    “data”:(None, json.dumps(data))
    }

    requests.post(url=url, file=files)

  • 資深大佬 : daxin945

    你可以用 postman 尝试发起请求,操作成功后能直接导出代码

  • 資深大佬 : k1z

    https://www.dazhuanlan.com/2019/12/09/5dee54bde48f4/
    刚好之前遇到过

  • 資深大佬 : Latin

    https://stackoverflow.com/questions/51349340/recreate-post-request-with-webkitformboundary-using-pythons-requests
    stackoverflow 解君忧

  • 資深大佬 : no1xsyzy

    https://curl.trillworks.com/ 解君愁

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具