使用 Python Mechanize 上传文件
Posted
技术标签:
【中文标题】使用 Python Mechanize 上传文件【英文标题】:upload file with Python Mechanize 【发布时间】:2010-11-20 22:54:28 【问题描述】:当我运行以下脚本时:
from mechanize import Browser
br = Browser()
br.open(url)
br.select_form(name="edit_form")
br['file'] = 'file.txt'
br.submit()
我得到:ValueError: value 属性是只读的
当我添加时我仍然得到同样的错误:
br.form.set_all_readonly(False)
那么,如何使用 Python Mechanize 与 html 表单交互以上传文件?
理查德
【问题讨论】:
这可能很愚蠢,但是 file.txt 是否存在于您脚本的工作目录中? 【参考方案1】:这是使用 Mechanize 正确执行此操作的方法:
br.form.add_file(open(filename), 'text/plain', filename)
【讨论】:
【参考方案2】:twill
建立在mechanize
之上,使编写 Web 表单的脚本变得轻而易举。见python-www-macro。
>>> from twill import commands
>>> print commands.formfile.__doc__
>> formfile <form> <field> <filename> [ <content_type> ]
Upload a file via an "upload file" form field.
>>>
【讨论】:
以上是关于使用 Python Mechanize 上传文件的主要内容,如果未能解决你的问题,请参考以下文章