gpt4 book ai didi

python - 使用 Mechanize 使用 Python 发送 POST 参数

转载 作者:行者123 更新时间:2023-12-04 16:19:33 25 4
gpt4 key购买 nike

我想用 Python 填写这个表格:

    <form method="post" enctype="multipart/form-data" id="uploadimage">
<input type="file" name="image" id="image" />
<input type="submit" name="button" id="button" value="Upload File" class="inputbuttons" />
<input name="newimage" type="hidden" id="image" value="1" />
<input name="path" type="hidden" id="imagepath" value="/var/www/httpdocs/images/" />
</form>

如您所见,有两个参数名称完全相同,因此当我使用 Mechanize 执行此操作时,会是这样的:
    import mechanize
br = mechanize.Browser()
br.open('www.site.tld/upload.php')
br.select_form(nr=0)

br.form['image'] = '/home/user/Desktop/image.jpg'
br.submit()

我收到错误:
mechanize._form.AmbiguityError: more than one control matching name 'image'

我在互联网(包括本网站)上找到的每个解决方案都不起作用。有不同的方法吗?
遗憾的是,重命名 HTML 表单中的输入不是一种选择。

提前致谢。

最佳答案

您应该使用 find_control反而;您可以添加 nr如果有歧义,请使用关键字选择特定控件。在您的情况下,nametype关键字应该可以。

另请注意,文件控件不接受 value ;使用 add_file而是传入一个打开的文件对象:

br.form.find_control(name='image', type='file').add_file(
open('/home/user/Desktop/image.jpg', 'rb'), 'image/jpg', 'image.jpg')

documentation on forms in mechanize .

关于python - 使用 Mechanize 使用 Python 发送 POST 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11276461/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com