Я пытаюсь получить результаты для пакета запросов на этой странице инструментов демографии: http://adlab.microsoft.com/Demographics-Prediction/DPUI.aspx
Действие POST в форме вызывает одну и ту же страницу (_self) и, вероятно, публикует некоторые данные о событиях. Я читал в другом сообщении здесь, в stackoverflow, что для страниц aspx обычно требуются некоторые данные в представлении и валидации. Я просто сохраняю их из запроса, повторно отправляю запрос POST?
Или есть более чистый способ сделать это? Один из параметров viewstate aspx составляет около 1000 символов, и невероятное уродство вставки этого кода в мой код заставляет меня думать, что это должно быть лучшим способом. Все ссылки на вещи, которые я могу прочитать, будут полезны, спасибо!
Используйте urllib2. Ваши данные POST - это простой словарь Python. Очень легко редактировать и поддерживать.
Если ваша форма содержит скрытые поля - некоторые из которых закодированы - тогда вам нужно сделать GET, чтобы получить форму и различные значения семенного поля.
После того, как вы получите форму, вы можете добавить необходимые входные значения к указанным, скрытым значениям и вернуть ответ обратно.
Кроме того, вы должны быть уверены, что будете обрабатывать любые файлы cookie. urllib2 также поможет.
В конце концов, это все браузер делает, и он работает в браузере. Браузер не знает ASPX от CGI от WSGI, поэтому нет волшебства, потому что это ASPX. Иногда вам нужно сделать GET перед отправкой POST, чтобы правильно настроить значения и файлы cookie.
Возможно, mechanize может быть полезным.
Я использовал комбинацию requests и BeautifulSoup4 для аналогичной задачи.