使用 Python 3 和 RoboBrowser 向 facebook 提交表单并获取 UnicodeDecodeError



所以我正在尝试制作一个脚本,该脚本将使用RoboBrowser为我自动将图像上传到Facebook,以浏览 mbasic.facebook.com 网站,并且在提交图像表单时遇到一个奇怪的错误:

Traceback (most recent call last):
File "C:UsersAdminOneDriveFacebook Projectfacebook.py", line 55, in <module>
browser.submit_form(form, submit=form["add_photo_done"])
File "C:UsersAdminAppDataLocalProgramsPythonPython37-32libsite-packagesrobobrowserbrowser.py", line 343, in submit_form
response = self.session.request(method, url, **send_args)
File "C:UsersAdminAppDataLocalProgramsPythonPython37-32libsite-packagesrequestssessions.py", line 498, in request
prep = self.prepare_request(req)
File "C:UsersAdminAppDataLocalProgramsPythonPython37-32libsite-packagesrequestssessions.py", line 441, in prepare_request
hooks=merge_hooks(request.hooks, self.hooks),
File "C:UsersAdminAppDataLocalProgramsPythonPython37-32libsite-packagesrequestsmodels.py", line 312, in prepare
self.prepare_body(data, files, json)
File "C:UsersAdminAppDataLocalProgramsPythonPython37-32libsite-packagesrequestsmodels.py", line 500, in prepare_body
(body, content_type) = self._encode_files(files, data)
File "C:UsersAdminAppDataLocalProgramsPythonPython37-32libsite-packagesrequestsmodels.py", line 159, in _encode_files
fdata = fp.read()
File "C:UsersAdminAppDataLocalProgramsPythonPython37-32libencodingscp1252.py", line 23, in decode
return codecs.charmap_decode(input,self.errors,decoding_table)[0]
UnicodeDecodeError: 'charmap' codec can't decode byte 0x8f in position 57: character maps to <undefined>

为什么会这样?我猜这与我如何处理将图像文件提交到表单有关,但我对原因感到困惑。我的相关代码如下:

form = browser.get_forms()
form = form[0]
image = os.path.dirname(os.path.realpath(__file__)) + r"test.png"
form['file1'] = image
browser.submit_form(form, submit=form["add_photo_done"])
print(browser.parsed())

编辑:
我不相信这是UnicodeDecodeError的重新发布:"charmap"编解码器无法解码位置Y:字符映射的字节X,因为我没有读取代码中的任何文件,因此提交表单时似乎出现了错误。无论如何,我已经看过这篇文章,但我无法弄清楚如何使用它来解决我的问题。

发现我需要发送图像对象而不是图像的路径。 下面的解决方案代码,如果有人正在查看以下内容:

image = open(os.path.dirname(os.path.realpath(__file__)) + r"test.jpg", 'rb')

最新更新