使用 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 上传文件的主要内容,如果未能解决你的问题,请参考以下文章

Python Mechanize 选择一个没有名字的表单

使用 mechanize 绕过 404

Python 中哪个最好:urllib2、PycURL 或 mechanize?

如何在 Windows 上安装 Python 包?

Python使用mechanize模拟浏览器

如何使用python和mechanize登录网站