Форум сайта python.su
Доброго времени суток! Помогите разобраться..
В данный момент работаю с запросами, требующими аутентификации паролем. Решил воспользоваться простым обработчиком аутентификациии HTTP, но тут же возникли проблемы. Попытался авторизоваться на данном ресурсе, делая так:
#! /usr/bin/python
import urllib2
auth = urllib2.HTTPBasicAuthHandler()
auth.add_password("navlogin",
"http://python.su/",
"grok",
"mypass")
opener = urllib2.build_opener(auth)
urllib2.install_opener(opener)
u = urllib2.urlopen("http://python.su/forum/")
text = u.read()
f = "/home/adv/python/pass"
fopen = open(f, "w")
fopen.write(text)
fopen.close()
Офлайн
grokНа этом сайте разве используется HTTP аутентификация? По куки же…
Решил воспользоваться простым обработчиком аутентификациии HTTP, но тут же возникли проблемы.
Офлайн
Разве прежде чем получить от сервера куки (и при последующем входе уже проходить аутентификацию по ним), не нужно вбивать тот же логин и пароль??
Офлайн
grokНет, вы пытаетесь пройти HTTP аутентификацию, которая, кстати нигде почти уже не используется. Вам нужно отправить POST запрос, и получить куки, с помощью которых уже открывать страницы.
Разве прежде чем получить от сервера куки (и при последующем входе уже проходить аутентификацию по ним), не нужно вбивать тот же логин и пароль??
Офлайн
igor.kaist, спасибо за разъяснение! Буду пробовать по Вашему совету :)
Офлайн
Попробовал сделать вот так:
#!/usr/bin/python
import urllib, urllib2
url = 'http://python.su/forum/login.php'
data = urllib.urlencode({'req_username' : 'mynickname', 'req_password' : 'mypass'})
headers = {'Host' : 'http://python.su',
'User-Agent' : 'Mozilla/4.0 (compatible; Windows NT 5.1; .NET CLR 2.0.50727)',
'Accept' : 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
#'Accept-Language' : 'ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3',
#'Accept-Encoding' : 'gzip,deflate',
#'Accept-Charset' : 'windows-1251,utf-8;q=0.7,*;q=0.7',
'Keep-Alive' : '115',
'Connection': 'keep-alive',
'Referer' : 'http://python.su/forum',
'Content-Type' : 'application/x-www-form-urlencoded'}
request = urllib2.Request(url, data, headers)
handle = urllib2.urlopen(request)
print handle.read()
Офлайн
grok, должно помочь http://docs.python.org/library/cookielib.html
Офлайн
У вас урл неправильный. Ручка авторизации находится тут – http://python.su/forum/login.php?action=in
Офлайн
grokПод Firefox установите Firebug, в опере можно запустить Dragonfly
“Как узнать какие именно заголовки ему нужно отослать, дабы получить авторизованную страницу?”
Офлайн
Всем большое спасибо! Завтра обязательно попробую, на сегодня сил больше нет)
Офлайн