import mechanize
br=mechanize.Browser()
br.set_handle_robots(False)
formno=-1
br.open(raw_input("enter the url"))
allforms=br.forms()
for form in allforms:
print "form name:",form.name
print "lets get to work"
for form in br.forms():
formno=formno+1
print "*"*20
print "working on form ",form.name
#form.set_all_readonly(False)
print formno
br.select_form(nr=formno)
print "boss"
for control in br.form.controls:
if control.readonly is True:
pass
else:
print control.name
form[control.name]='sparsh'
resp=br.submit()
resp=resp.get_data()
print resp
出力:
enter the url http://www.howtogeek.com/
form name: None
form name: None
form name: None
lets get to work
********************
working on form None
0
boss
emailaddress
emailaddress False
email
email False
One more step!
Make sure to check your email for a confirmation message.
Note: If you do not get it soon, check your Spam or Junk folders.
hello
********************
working on form None
1
**Traceback (most recent call last):
File "D:\thesis\data\form_mechanize_try.py", line 21, in
br.select_form(nr=formno)
File "build\bdist.win32\egg\mechanize\_mechanize.py", line 524, in select_form
raise FormNotFoundError("no form matching "+description)
FormNotFoundError: no form matching nr 1**
なぜこのエラーが発生するのですか?
私が達成しようとしているのは、特定のWebサイトで利用可能なすべてのフォームに入力して応答を確認することです..しかし、上記のコードは最初のフォームを選択するだけで、その後エラーが発生します