Python + Mechanize - Эмулировать нажатие кнопки Javascript с помощью POST? - PullRequest
0 голосов
/ 04 августа 2020

Я пытаюсь автоматизировать заполнение формы цитаты по страхованию автомобиля на сайте: (следуя тому же формату, что и URL-адрес сайта, можно называть его: «https://secure.examplesite.com/css/car/step1#noBack»)

Я застрял на re go, так как после добавления re go необходимо нажать кнопку, чтобы выполнить поиск, и кажется, что это тяжелый Javascript, и я знаю, что механизатор не справится с этим. Я не разбираюсь в JavaScript, но я вижу, что при нажатии кнопки делается запрос POST на этот URL: ("https://secure.examplesite.com/css/car/step1/searchVehicleByRegNo") См. Также изображение.

Как я могу эмулировать этот запрос POST в Mechanize для запуска javascript? Чтобы я мог видеть ответ / взаимодействовать с ответом? Или это невозможно? Могу ли я вместо этого рассмотреть bs4 / requests / robobrowser. У меня всего ~ 4 месяца в обучении! Спасибо

# Mechanize test
import mechanize

br = mechanize.Browser()
br.set_handle_robots(False)   # ignore robots
br.set_handle_refresh(False)  # can sometimes hang without this
res = br.open("https://secure.examplesite.com/css/car/step1#noBack")

br.select_form(id = "quoteCollectForm")
br.set_all_readonly(False)    # allow everything to be written to

controlDict = {}

# List all form controls
for control in br.form.controls:
    controlDict[control.name] = control.value
    print("type = %s, name = %s, value = %s" %(control.type, control.name, control.value))

# Enter Rego etc "example"
br.form["vehicle.searchRegNo"] = "example"

# Now for control name = vehicle.searchRegNo, value = example

# BUT Now how do I click the button?? Simulate POST? The post url is formatted like:
# https://secure.examplesite.com/css/car/step1/searchVehicleByRegNo

Javascript POST

...