1

我试图删除wikisite超过2000垃圾邮件的用户,所以我用机械化和用户合并和删除(链接到MediaWiki扩展)。我现在遇到的问题是,对于删除,机械化有剔一个复选框,这似乎不工作:机械化CheckBox控件不工作蟒蛇

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() 

我在很多帖子在这里计算器以及其他网站一看,都说着同样的

br.form.find_control(name='deleteuser').items[0].selected = True 

应该这样做。 我做错了什么?

+0

你可以给网页的URL或HTML? – ton1c 2013-04-29 17:33:52

+0

你看到什么行为?你有没有尝试过使用RobustFactory? – 2013-04-29 19:33:13

+0

html是不相关的,是一个链接到一个mediawiki扩展的形式(specialpage:usermergeanddelete)。 – 2013-04-30 01:01:42

回答

1

这确实不是一个解决方案,但应该可以帮助你调试和看到,如果你正在做的事情是错误的。以下仅打印您尝试使用机械化填写的表单上的所有控件。

for control in form[0].controls: 
    print control 

如果你已经正确地选中该复选框它应该是这样的:

<CheckboxControl(deleteorwhatever=[*on])> 

我希望这有助于让你在正确的方向。

0

晚,但这个工作对我来说...

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

我没有具体说明(名称=“comment_status”),但只是在单独报价的它的名字。