Как мне заполнить и отправить форму удаленно?

#javascript #python

#javascript #python

Вопрос:

Как я могу заполнить и отправить эту форму удаленно:http://mta-nyc.custhelp.com/cgi-bin/mta_nyc.cfg/php/enduser/ask.php

Форма запрашивает адрес электронной почты, а затем в ней появляется выпадающее меню и поля для темы и вопроса.

Нажатие кнопки Далее приведет вас на новую страницу, и на этой странице вы нажимаете отправить.

Могу ли я заполнить эту форму и отправить ее одним щелчком мыши со своего сайта?

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

Как я могу это сделать (с помощью python и javascript)?

Ответ №1:

Если вы отправляете страницу на свой серверный сервер Python, ознакомьтесь с Mechanize .

Комментарии:

1. Я использую Google App Engine и планирую создать страницу, на которой будут предварительно заполнены поля «Тема» и «Вопрос», а также принять электронное письмо пользователя и отправить его в эту удаленную форму. Итак, я не уверен, что вы подразумеваете под «отправкой страницы на ваш серверный сервер python». Я хотел бы отправить удаленную форму из приложения Google App Engine с использованием Python. Спасибо.

2. Python — это ваш сервер, чем. Если вы делаете публикацию на своей странице для отправки данных, то вы хотели бы отправить ее через python и вернуть ответ таким образом.

Ответ №2:

Попробуйте twill — http://twill.idyll.org/python-api.html . Я не какая-то оболочка Mechanize.

Комментарии:

1. Спасибо, я прочитал документацию, но я не совсем понимаю, как все это работает. Знаете ли вы какие-либо источники, где это объясняется более элементарным базовым способом или как добиться того же самого без механизации или twill? (Просто чтобы дать мне представление о том, как все это работает)

Ответ №3:

Отправьте сообщение в ~/api /feedback с теми же заголовками и данными формы, что и их форма?

Откройте Chrome dev tools или что-то еще, перейдите на вкладку сеть, заполните форму вручную один раз и скопируйте последнее сообщение HTTP?

В зависимости от типа обратной связи в этой форме данные будут меняться. Опубликованные мной данные выглядят следующим образом:

 feedback: {"name":{"first":"Test","last":"Test"},"email":"test@test.co","feedbackType":{"service":{"sid1":10000,"sid2":14000},"categories":{"cid1":14308}},"attributes":[{"id":"branch_line_route","value":"F"},{"id":"traincarnumber","value":"1"},{"id":"date_of_event","value":"2020-09-10T13:35:47.318Z"},{"id":"time_of_occurence","value":"15:37:37"}],"comment":"Nice train"}