我有一个使用mechanize操作webform的小脚本。这是表单的屏幕截图(底部没有提交按钮)。别担心。)
代码:
import re
import mechanize
bs = mechanize.Browser()
server = raw_input("IP to retry: ")
bs.open("http://"+server+"/avicapture.html")
assert bs.viewing_html()
bs.select_form(name="avistatus_form")
form = bs.form
bs.find_control("AVI_STATUS_ACTION").items[1].selected=True
bs.find_control("avistatuscheck0").items[0].selected=True
bs.find_control("avistatuscheck1").items[0].selected=True
bs.find_control("avistatuscheck2").items[0].selected=True
bs.find_control("avistatuscheck3").items[0].selected=True
bs.find_control("avistatuscheck4").items[0].selected=True
bs.find_control("avistatuscheck5").items[0].selected=True
print "Sending retry signal."
bs.submit()
print server+" Retried!"
事实上,它将选中所有六个复选框,并将带有下拉选项(AVI_STATUS_ACTION)的表单作为[1]提交。在
如何让它确定哪一行(与适当的avistuscheck控件(checkbox)相关)是最近的一行,并且只在选中该复选框的情况下提交表单?随着传输的文件越来越多,它们就会累积起来,我不需要全部重新发送。只是最近的一次。在
我对regex有一点了解;足以使用urllib2将html页面加载到字符串中,并从当前的“正在进行”传输中获取百分比量,但对于如何确定与正确控件(checkbox)相对应的最新传输,我有点不知所措
源代码包含的数据格式比实际的HTML格式要好,格式为注释形式:
可以使用正则表达式来分析:
^{pr2}$相关问题 更多 >
编程相关推荐