Заполнение динамической онлайн-формы в Python - PullRequest
0 голосов
/ 01 июня 2018

Я работаю с RoboBrowser на Python и пытаюсь заполнить форму на веб-сайте ( здесь ).Теперь дело в том, что форма является динамичной.Если вы откроете ссылку, вы увидите строку «Страна», «Штат / Район», «Город» и «Местоположение».

Строка Штат / Район зависит от того, какая СтранаВы выбираете из выпадающего меню, Город зависит от штата / района и Местоположение зависит от города.Я хочу иметь возможность извлекать, например, «значения» штата / района для конкретного значения страны.Например, когда я пишу следующий код:

>>> import re
>>> from robobrowser import RoboBrowser
>>> browser = RoboBrowser()
>>> browser.open('http://http://www.kidzee.com/admissions-at-kidzee/')
>>> form = browser.get_form()
>>> form
<RoboForm siteid=, adunit=, fname=, lname=, email=, mobile=,country=,state=,
city=, location=0, 6_letters_code=, admission_submit=Submit>
>>> form['country'].options
['','1','2'] #The options presented are India and Nepal.
>>>form['country'].value = '1'
>>>form['state'].options
['']

Теперь, что я хочу сделать, это получить все возможные значения для form['state'].value с form['country'].value = '1' (потому что список состояний зависит от значения страны).Как мне это сделать?

Спасибо, что прочитали мой вопрос.

1 Ответ

0 голосов
/ 01 июня 2018

После изучения сетевого журнала, кредитов: @ P.hunter, я увидел, что запрос отправлялся на http://www.kidzee.com/wp-admin/admin-ajax.php?action=state всякий раз, когда я нажимал кнопку Выбрать страну.Поэтому я написал следующий код для извлечения данных:

    from urllib.parse import urlencode
    from urllib.request import Request, urlopen

    url = 'http://www.kidzee.com/wp-admin/admin-ajax.php?action=state'
    fields = {'state': '1'}  

    r = Request(url, urlencode(fields).encode())
    json = urlopen(r).read().decode()
    print(json)

И теперь я получаю необходимые штаты в стране.

Спасибо за правильное направление @ P.hunter.

...