День добрый, пытаюсь отправлять целую 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 видит форму лишь на половину ?