Отправка запросов и извлечение результатов из ASPX-страниц с использованием Python? - PullRequest
1 голос
/ 13 января 2010

Я пытаюсь получить результаты для пакета запросов к этой странице инструментов демографии: http://adlab.microsoft.com/Demographics-Prediction/DPUI.aspx

Действие POST в форме вызывает ту же страницу (_self) и, вероятно, публикует некоторые данные о событиях. Я читал в другом посте здесь в stackoverflow, что ASPX-страницам обычно требуется некоторое состояние просмотра и данные проверки. Я просто сохраняю их из запроса, повторно отправляю в запросе POST?

Или есть более чистый способ сделать это? Один из параметров aspx viewstate составляет около 1000 символов, и невероятное безобразие вставки этого в мой код заставляет меня думать, что должен быть лучший способ. Любые ссылки на материалы, которые я могу прочитать, будут полезны, спасибо!

Ответы [ 3 ]

1 голос
/ 13 января 2010

Используйте urllib2 . Ваши данные POST - это простой словарь Python. Очень легко редактировать и поддерживать.

Если ваша форма содержит скрытые поля, некоторые из которых закодированы, вам нужно выполнить GET, чтобы получить форму и различные начальные значения скрытых полей.

Как только вы ПОЛУЧИТЕ форму, вы можете добавить необходимые входные значения к заданным, скрытым значениям и снова отправить ответ.

Кроме того, вы должны быть уверены, что обрабатываете любые файлы cookie. urllib2 также поможет с этим.

В конце концов, это все, что делает браузер, и он работает в браузере. Браузер не знает ASPX из CGI из WSGI, поэтому нет ничего волшебного, потому что это ASPX. Иногда вам нужно выполнить GET перед POST, чтобы правильно установить значения и файлы cookie.

1 голос
/ 13 января 2010

Возможно механизировать может быть полезным.

0 голосов
/ 27 ноября 2012

Я использовал комбинацию запросов и BeautifulSoup4 для аналогичной задачи.

...