使用python机械化上传文件

锡兰

我正在使用Windows 10笔记本电脑。当我在本地计算机上手动打开Submit.html时,单击并浏览到namo.jpg namo.png然后提交,我让网站处理我的图像并在15秒内返回结果文件。但是我似乎无法使用Python mechanize做到这一点,当它运行脚本时,mechanize_results.html文件总是返回得太快,并在他们的页面中告诉我“上传的文件不是有效的图像。只有JPG ,允许使用PNG和GIF文件。.“不确定我必须进行哪些更改才能使站点将我的python机械化脚本提交的文件识别为图像文件。

我的submit.html文件有这个

 <form name="myform" id="myform" action="http://deepdreamgenerator.com/upload-im" enctype="multipart/form-data" method="POST" id="upload-form">
    <input type="hidden" name="_token" value="pfC1a6HGVdbWO7mCmKVkqVinCkSYOKkQxXZV9NY1">
    <input type="file" name="file" id="upload"/>
    <input type="submit" />
</form>

我的python机械化脚本具有此导入机械化

filename = 'C:/Users/tintran/Desktop/namo.png'
url = "file:///C:/Users/tintran/Desktop/submit.html"
br = mechanize.Browser()
br.set_handle_robots(False) # ignore robots
br.open(url)
br.select_form('myform')
br.set_all_readonly(False)
br.form.add_file(open(filename,'r'))
res = br.submit()
content = res.read()
with open("mechanize_results.html", "w") as f:
    f.write(content)
y0prst

https://docs.python.org/2/library/functions.html#open

如果省略mode,则默认为'r'。默认设置为使用文本模式,该模式可以在书写时将'\ n'字符转换为特定于平台的表示形式,并在读取时将其转换为特定的表示形式。因此,打开二进制文件时,应在模式值后附加“ b”以二进制模式打开文件,这将提高可移植性。(追加'b'甚至在没有区别对待二进制文件和文本文件的系统上也很有用,在此作为文档。)请参见下面的mode的更多可能值。

这一切都与Windows有关。因此,只需使用“ rb”打开PNG文件。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Python机械化文件下载

来自分类Dev

使用Python机械化更改IP

来自分类Dev

Python机械化-登录

来自分类Dev

编译Web表单并使用机械化检索文件

来自分类Dev

使用Python打开浏览器/机械化

来自分类Dev

使用机械化Python在textarea中输入数据

来自分类Dev

使用机械化和BeautifulSoup捆绑Python

来自分类Dev

我如何在Java中使用机械化python

来自分类Dev

使用Python打开浏览器/机械化

来自分类Dev

python机械化forms()错误

来自分类Dev

Python机械化等待并单击

来自分类Dev

Python在Raspbian上机械化

来自分类Dev

Python机械化表单下拉错误

来自分类Dev

Python机械化等待并单击

来自分类Dev

Python机械化表单提交

来自分类Dev

蛮力脚本python和机械化

来自分类Dev

在机械化 Python 中获取“FormNotFoundError”

来自分类Dev

Python 机械化设置 cookie

来自分类Dev

机械化错误

来自分类Dev

机械化错误

来自分类Dev

机械化刮

来自分类Dev

提交表单,并在python中使用机械化获取结果

来自分类Dev

使用python机械化以NTLM身份验证登录页面

来自分类Dev

如何在python中使用机械化将字符串输入表单的特定部分?

来自分类Dev

我想在使用python机械化认证后获取网站的来源。HTTP错误403:禁止

来自分类Dev

无法使用来自python的机械化登录。我究竟做错了什么?

来自分类Dev

Python Beautiful Soup解析UTF-8编码表(使用机械化)

来自分类Dev

如何在python中使用机械化将字符串输入表单的特定部分?

来自分类Dev

如何在python中删除控件-机械化?