Python mechanize复选框控件不工作

Python mechanize复选框控件不工作,python,checkbox,mechanize,spam-prevention,mediawiki-extensions,Python,Checkbox,Mechanize,Spam Prevention,Mediawiki Extensions,我试图删除一个维基网站的2000多个垃圾邮件用户,所以我使用了mechanize和user merge and delete(mediawiki扩展)。我遇到的问题是,对于删除,mechanize必须勾选一个复选框,这似乎不起作用: fi = open('users') for user in fi.readlines(): response3 = br.open('url') br.form = list(br.forms())[0] br['olduser']

我试图删除一个维基网站的2000多个垃圾邮件用户,所以我使用了mechanize和user merge and delete(mediawiki扩展)。我遇到的问题是,对于删除,mechanize必须勾选一个复选框,这似乎不起作用:

fi = open('users')

for user in fi.readlines():

    response3 = br.open('url')

    br.form = list(br.forms())[0]
    br['olduser'] = user
    br['newuser'] = 'Spambot'
    br.form.find_control(name='deleteuser').items[0].selected = True

    response4 = br.submit()

        print response4.read(), '\njust deleted ', user

fi.close()
我在stackoverflow和其他网站上看过很多帖子,都是这么说的

br.form.find_control(name='deleteuser').items[0].selected = True
我应该这样做。
我做错了什么?

这确实不是一个解决方案,但应该可以帮助您调试并查看是否做错了什么。下面只是打印您试图使用Mechanize填充的表单上的所有控件

for control in form[0].controls:
    print control
如果您正确选择了复选框,则应如下所示:

<CheckboxControl(deleteorwhatever=[*on])>


我希望这有助于您朝着正确的方向前进。

这确实不是一个解决方案,但应该有助于您进行调试,并查看您是否做错了什么。下面只是打印您试图使用Mechanize填充的表单上的所有控件

for control in form[0].controls:
    print control
如果您正确选择了复选框,则应如下所示:

<CheckboxControl(deleteorwhatever=[*on])>


我希望这能帮你找到正确的方向。

很晚了,但这对我很有效

br.find_control("comment_status").items[0].selected = false

我没有指定(name=“comment\u status”),只在引号中指定了它的名称

很晚了,但这对我很有效

br.find_control("comment_status").items[0].selected = false

我没有指定(name=“comment\u status”),只在引号中指定了它的名称

你能给出网页的URL或html吗?你看到了什么行为?您是否尝试过使用RobustFactory?html与此无关,它是指向mediawiki扩展形式(specialpage:usermergeanddelete)的链接。循环不会引发异常,它会像工作一样完成。它实际上正在工作(填写表单导致SQL数据库中的用户引用合并),但由CheckboxControl控制的传统操作没有发生(从数据库中删除合并的用户),这是脚本的主要目的。您执行的命令是正确的,因此,唯一有帮助的是表单的实际html。如果您不提供页面或至少不提供页面的工作方式(是否使用JavaScript或类似的方法生成复选框按钮),那么您将不会得到任何帮助。您可以给出页面的URL或html吗?您看到了什么行为?您是否尝试过使用RobustFactory?html与此无关,它是指向mediawiki扩展形式(specialpage:usermergeanddelete)的链接。循环不会引发异常,它会像工作一样完成。它实际上正在工作(填写表单导致SQL数据库中的用户引用合并),但由CheckboxControl控制的传统操作没有发生(从数据库中删除合并的用户),这是脚本的主要目的。您执行的命令是正确的,因此,唯一有帮助的是表单的实际html。如果您不提供页面或至少不提供页面的工作方式(是否使用JavaScript或类似的方法来生成复选框按钮),那么您将得不到任何帮助。