Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 17, 2011 00:13:47

anFo
От:
Зарегистрирован: 2011-06-16
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

HTTP авторизация

Доброго времени суток. Я только начал изучать Питон и программирование в целом, и целью себе поставил написание одной программки. Одной из её функций является работа с сайтом. Перепробовал кучу способов, но так и не смог авторизироваться на сайте и выполнить действия, доступные только для авторизированных. Использовал и mechanize, и urllib, urllib2, cookielib и httplib2. Сейчас остановился на последнем, т.к. как-то более симпатично выглядит. Но вот как на нем правильно авторизироваться, не знаю. Помогите, пожалуйста.
Вот код.

import urllib.parse, httplib2
http = httplib2.Http()
logurl = 'http://sitename/takelogin.php'
body = {'username':'un','password':'pw'}
headers = {'Content-type': 'application/x-www-form-urlencoded'}
response, content = http.request(logurl, 'POST', headers=headers, body=urllib.parse.urlencode(body))
headers = {'Cookie':response['set-cookie']}
downurl = 'http://sitename/filelink'
response, f = http.request(downurl, headers=headers)
Вроде всё проходит удачно, но когда я пытаюсь скачать файл или открыть закрытую страничку, меня выкидывает на страничку авторизации.
Вообще страничка логина имеет адрес /login.php, но браузер показывает, что отправляется post запрос на /takelogin.php, который открыть для прочтения нельзя.
Помогите, пожалуйста, разобраться, а то столько способов перепробовал и все не работают. Скорее всего это я где-то туплю, но делал всё по мануалам.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version