gpt4 book ai didi

Python Mechanize 表单提交不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 01:13:23 26 4
gpt4 key购买 nike

我正在尝试编写一个简单的机器人,它会在页面上登录我的帐户,然后评论其他用户的图片。但是我无法正确提交评论表。评论表单如下所示:

<form id="comment-form" action="#" onsubmit="postComment($(this).serialize(),'image',117885,229227); return false;">
<input class="comment" type="text" size="40" name="comment" id="comment" />
<input type="hidden" name="commentObj" value="9234785" />
<input type="hidden" name="commentMode" value="image" />
<input type="hidden" name="userid" value="12427" />
<input class="submit" type="submit" value="Comment" />
</form>

我的代码如下

br.select_form(nr = 1)
br.form['comment'] = 'hello'
br.submit()

页面有两种形式,评论形式是第二种。所以我确定我选择了正确的表格。谁能解释为什么这不起作用?

最佳答案

在提交表单时执行了一段 javascript 代码:

onsubmit="postComment($(this).serialize(),'image',117885,229227); return false;"

mechanize 根本无法处理它,因为它不是浏览器并且内部没有 javascript 引擎。

可能的解决方案:

  • 高级方法 - 通过 selenium 使用真正的浏览器webdriver 和自动使用操作 - 将键发送到输入,单击提交按钮等。示例代码:

    from selenium import webdriver

    driver = webdriver.Firefox()
    dirver.get('my_url_here')

    comment = driver.find_element_by_id('comment')
    comment.send_keys('hello')
    comment.submit() # this would find an enclosing form and submit it
  • 研究在触发表单提交事件时向服务器发送了哪些请求。然后,使用例如 requests 自动执行请求.

希望对您有所帮助。

关于Python Mechanize 表单提交不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26263323/

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