我正在使用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)
https://docs.python.org/2/library/functions.html#open
如果省略mode,则默认为'r'。默认设置为使用文本模式,该模式可以在书写时将'\ n'字符转换为特定于平台的表示形式,并在读取时将其转换为特定的表示形式。因此,打开二进制文件时,应在模式值后附加“ b”以二进制模式打开文件,这将提高可移植性。(追加'b'甚至在没有区别对待二进制文件和文本文件的系统上也很有用,在此作为文档。)请参见下面的mode的更多可能值。
这一切都与Windows有关。因此,只需使用“ rb”打开PNG文件。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句