我对Python的请求库非常熟悉,并且对发出请求有很好的理解。但是,对于某个POST请求,我已经遇到了这个特定的有效负载,而且我不确定如何处理它。
------WebKitFormBoundary9Bj6df0ErrnOvlr8
Content-Disposition: form-data; name="upload_id"
1532472043020
------WebKitFormBoundary9Bj6df0ErrnOvlr8
Content-Disposition: form-data; name="photo"; filename="photo.jpg"
Content-Type: image/jpeg
------WebKitFormBoundary9Bj6df0ErrnOvlr8
Content-Disposition: form-data; name="media_type"
1
------WebKitFormBoundary9Bj6df0ErrnOvlr8--
此有效载荷用于通过简单的Web请求将图片上传到instagram.com。
问题:
此有效负载如何转换为我在桌面上选择图片的方式。文件路径在哪里起作用?
这是用于登录instagram.com的代码。请注意,这是我创建的类的一部分。 (其中,构造函数将用户名和密码作为参数。
def logIn(self):
self.loginPage = 'https://www.instagram.com/accounts/login/ajax/'
self.userAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36'
self.session.get(self.loginPage, proxies = {'http' : self.proxy, 'https' : self.proxy})
self.session.headers = {'user-agent': self.userAgent}
self.session.headers.update({'Referer': self.refererUrl, 'x-csrftoken': self.session.cookies['csrftoken']})
loginData = {
'username': self.username,
'password': self.password
}
loginToPage = self.session.post(self.loginPage, data=loginData, allow_redirects=True, proxies = {'http' : self.proxy, 'https' : self.proxy})
self.session.headers.update({'x-csrftoken': self.session.cookies['csrftoken']})
loginText = json.loads(loginToPage.text)
print(loginToPage.text)
这也是请求URL,它需要上面的有效负载:https://www.instagram.com/create/upload/photo/