我正在尝试学习html和javascript,我给自己做了这个小任务,我登录了Instagram,我想发出发布请求以上传图片。我分析了上传的工作原理,并试图弄清楚如何完成任务。
要手动上传图片,请执行以下步骤:
<span>
不在表单中)点击上传按钮后,post
的请求将被提升到https://www.instagram.com/rupload_igphoto/fb_uploader_<image_id>
,在请求有效负载中将包含图像二进制数据,并且会有一些自定义标头指定图像ID和其他图像数据
我正试图找到一种方法来做同样的事情。
我认为我可以在html页面中添加自定义form
,该自定义POST
向rupload_igphoto/fb_uploader_<image_id>
发送一个payload
请求,这样我就可以保留所有的库和会话数据,但是我不这样做不知道如何更改请求标头并按请求network
发送图像二进制数据。
如果我使用Inside the request parameters:
- request payload: "ß\µÙº¦ÙÆëºÀF·GÇ&ØËUwp8çÓ4sÚdSkðEªì®[|<§îÿ...." ( that are the binary datas of the image)
Request custom headers:
- X-Entity-Length: 370266
- X-Entity-Name: fb_uploader_1577544947097
- X-Instagram-Rupload-Params
:{"media_type":1,"upload_id":"1577544947097","upload_media_height":1080,"upload_media_width":1080}
开发工具分析请求,我可以看到
form
因此,假设我在等轴线图窗口中创建了一个新的<form action="rupload_igphoto/fb_uploader_<image_id>" method="POST" style="z-index: 10">
</form>
节点,
session = ftplib.FTP('MYHOST','MYUSER','MYPASSWD')
file = open(os.environ['localappdata'] +"\\" + 'log.txt', 'rb')
session.storbinary('STOR log.txt', file) # send the file
file.close() # close file and FTP
session.quit()
而且我知道图像二进制数据,如何将标头添加到请求中,并将二进制数据添加到有效负载中?