Я пытаюсь зайти на 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():
никогда не соответствует действительности, поэтому на странице нет форм, но на странице есть форма!