我正在尝试登录booking.com
以下载我的租金收入数据。表单具有html标签:
<form class="nw-signin" novalidate="">
Python代码:
import mechanize
from bs4 import BeautifulSoup
import urllib2
import cookielib
cj = cookielib.CookieJar()
br = mechanize.Browser()
br.set_handle_robots(False)
br.set_cookiejar(cj)
br.open("https://account.booking.com/")
formcount=0
for frm in br.forms():
if str(frm.attrs["class"])=="nw-signin":
break
formcount=formcount+1
br.select_form(nr=formcount)
br.form['username'] = '1272897'
br.submit()
print br.response().read()
但是我得到了错误:
FormNotFoundError Traceback (most recent call last)
<ipython-input-3-ee31ffcb0057> in <module>()
15 break
16 formcount=formcount+1
---> 17 br.select_form(nr=formcount)
18 br.form['username'] = '1272897'
19 br.submit()
C:\Users\kerss\Anaconda2\lib\site-packages\mechanize\_mechanize.pyc in select_form(self, name, predicate, nr, **attrs)
666 description.append('%s = %r' % (k, v))
667 description = ", ".join(description)
--> 668 raise FormNotFoundError("no form matching " + description)
669
670 def click(self, *args, **kwds):
FormNotFoundError: no form matching nr 0
我在这里挠头!谁能看到我要去哪里错了?
如果我跑步
import mechanize
from bs4 import BeautifulSoup
import urllib2
import cookielib
count = 0
cj = cookielib.CookieJar()
br = mechanize.Browser()
br.set_handle_robots(False)
br.set_cookiejar(cj)
br.open("https://account.booking.com/")
for form in br.forms():
count = count +1
print count
没有打印任何内容,表明
for form in br.forms():
从来都不是真的,因此页面上没有表单,但是页面上显然有表单!