使用python登录到booking.com

时间:2019-05-21 04:39:36

标签: python mechanize

我正在尝试登录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():

从来都不是真的,因此页面上没有表单,但是页面上显然有表单!

0 个答案:

没有答案
相关问题