В Python, как можно войти в систему, ответить на веб-форму через HTTP POST (без URL-адреса) и получить возвращенный файл XML? - PullRequest
3 голосов
/ 20 февраля 2009

Я пытаюсь экспортировать файл конфигурации один раз в неделю. Хотя рассматриваемый продукт позволяет вам войти в систему вручную через веб-клиент, ввести некоторую информацию и получить обратно XML-файл при отправке, нет никакой возможности автоматизировать это. Я могу обойтись без использования Python 2.5 (использовал некоторое время) или 2.6 (незнакомый), чтобы сделать это.

  1. Я думаю, мне нужен какой-то способ аутентификации на этом продукте. Хотя я могу просмотреть файл cookie в Firefox, при просмотре самого файла cookie.txt его не было. Не показывался после очистки моих личных данных и повторной аутентификации. Странный. Должен ли я снимать для модуля Cookie, или это может быть какой-то мистический метод аутентификации, который только выглядит как куки? Откуда мне знать?

  2. Я думаю, мне нужен модуль httplib для выполнения HTTP POST, но я не знаю, как сделать кодировку multipart/form-data. Я упустил из виду удобный вариант, или это то, что я должен сделать самостоятельно?

  3. Я предполагаю, что смогу вернуть XML-файл обратно в HTTPesponse из httplib.

Я загружал веб-вещи через Python раньше, но не с POST, многокомпонентным кодированием и аутентификацией в миксе.

Ответы [ 3 ]

3 голосов
/ 20 февраля 2009

urllib2 должно охватывать все это.

Вот пример Basic Authentication .

Вот сообщение с multipart / form-data .

2 голосов
/ 20 февраля 2009

Попробуйте механизировать модуль.

0 голосов
/ 20 февраля 2009

Вы должны посмотреть на MultipartPostHandler:

http://odin.himinbi.org/MultipartPostHandler.py

И если вам нужно поддерживать имена файлов в юникоде, см. Исправление по адресу: http://peerit.blogspot.com/2007/07/multipartposthandler-doesnt-work-for.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...