Python: Сабмит aspnet формы через robobrowser

python
Теги: #<Tag:0x00007fedb85dbad0>

(Acamori) #1

День добрый, пытаюсь отправлять целую aspnet форму на сайте через модуль robobrowser в python и столкнулся с тем, что он вытягивает не все доступные поля.

Узнал про этот модуль я буквально вчера, и все нюансы вычитать еще не успел, а гугл в основном посылает на обсуждения других проблем.

Мой код выглядит так:

>>>browser = RoboBrowser(history=True, parser='html.parser')
>>>browser.open(url, cookies=get_cookies())
>>>form = browser.get_form(id='aspnetForm')

Этим я получаю форму и далее могу с ней работать, но почему-то она вытягивает не все поля.

>>>print(form['ctl00$ContentPlaceHolderWorkShopPage$TextBoxYearVar'].value)
100
>>>print(form['ctl00$ContentPlaceHolderWorkShopPage$TextBoxLocationVar'].value)
Traceback (most recent call last):
  File "<pyshell#110>", line 1, in <module>
    form['ctl00$ContentPlaceHolderWorkShopPage$TextBoxLocationVar']
  File "C:\Users\rowar\AppData\Local\Programs\Python\Python36-32\lib\site-packages\robobrowser\forms\form.py", line 213, in __getitem__
    return self.fields[item]
  File "C:\Users\rowar\AppData\Local\Programs\Python\Python36-32\lib\site-packages\werkzeug\datastructures.py", line 784, in __getitem__
    raise exceptions.BadRequestKeyError(key)
werkzeug.exceptions.HTTPException.wrap.<locals>.newcls: 400 Bad Request: The browser (or proxy) sent a request that this server could not understand.

Хотя в коде страницы эти два поля идут друг за другом и явных каких-то разделителей или явной смены формы нету.
Так же если просмотреть запрос который был отправлен на сайт, при нажатии кнопки сохранить, там перечисляются все поля:

ctl00$ContentPlaceHolderWorkShopPage$TextBoxYearVar: 100
ctl00$ContentPlaceHolderWorkShopPage$TextBoxYearBuilt2: 
ctl00$ContentPlaceHolderWorkShopPage$TextBoxYearBuiltAdjust2: 
ctl00$ContentPlaceHolderWorkShopPage$TextBoxYearBuilt3: 
ctl00$ContentPlaceHolderWorkShopPage$TextBoxYearBuiltAdjust3: 
ctl00$ContentPlaceHolderWorkShopPage$TextBoxYearBuilt4: 
ctl00$ContentPlaceHolderWorkShopPage$TextBoxYearBuiltAdjust4: 
ctl00$ContentPlaceHolderWorkShopPage$TextBoxSiteAcres2: 
ctl00$ContentPlaceHolderWorkShopPage$TextBoxSiteAcresAdjust2: 
ctl00$ContentPlaceHolderWorkShopPage$TextBoxSiteAcres3: 
ctl00$ContentPlaceHolderWorkShopPage$TextBoxSiteAcresAdjust3: 
ctl00$ContentPlaceHolderWorkShopPage$TextBoxSiteAcres4: 
ctl00$ContentPlaceHolderWorkShopPage$TextBoxSiteAcresAdjust4: 
ctl00$ContentPlaceHolderWorkShopPage$DropDownListLocationSubject: 9
ctl00$ContentPlaceHolderWorkShopPage$TextBoxLocationVar: 1

В чем собственно вопрос и заключается, почему robobrowser видит форму лишь на половину ?