Форум сайта python.su
0
Доброго времени суток! Помогите разобраться..
В данный момент работаю с запросами, требующими аутентификации паролем. Решил воспользоваться простым обработчиком аутентификациии 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()
Офлайн
3
grokНа этом сайте разве используется HTTP аутентификация? По куки же…
Решил воспользоваться простым обработчиком аутентификациии HTTP, но тут же возникли проблемы.
Офлайн
0
Разве прежде чем получить от сервера куки (и при последующем входе уже проходить аутентификацию по ним), не нужно вбивать тот же логин и пароль??
Офлайн
3
grokНет, вы пытаетесь пройти HTTP аутентификацию, которая, кстати нигде почти уже не используется. Вам нужно отправить POST запрос, и получить куки, с помощью которых уже открывать страницы.
Разве прежде чем получить от сервера куки (и при последующем входе уже проходить аутентификацию по ним), не нужно вбивать тот же логин и пароль??
Офлайн
0
igor.kaist, спасибо за разъяснение! Буду пробовать по Вашему совету :)
Офлайн
0
Попробовал сделать вот так:
#!/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()
Офлайн
0
grok, должно помочь http://docs.python.org/library/cookielib.html
Офлайн
2
У вас урл неправильный. Ручка авторизации находится тут – http://python.su/forum/login.php?action=in
Офлайн
3
grokПод Firefox установите Firebug, в опере можно запустить Dragonfly
“Как узнать какие именно заголовки ему нужно отослать, дабы получить авторизованную страницу?”
Офлайн
0
Всем большое спасибо! Завтра обязательно попробую, на сегодня сил больше нет)
Офлайн