Сайт - http://www.nnm.ru
# -*- coding: utf-8 -*- import codecs, sys, os from BeautifulSoup import BeautifulSoup import urllib, urllib2 import binascii import datetime, re sys.stdout = codecs.getwriter('cp866')(sys.stdout, errors='replace') # логин, получение cookie params = urllib.urlencode({'login' : 'Vasya', 'passwd' : 'Pass'}) # создаём объект запроса req = urllib2.Request('http://www.nnm.ru', params) # получаем файловый объект странички f = urllib2.urlopen(req) # получаем http-заголовок с cookies cookie = unicode(f.headers['Set-Cookie'], 'cp1251') print cookie # получаем значение cookie (id сессии) matches = re.findall('PHPSESSID=(.*?); ', cookie) cookie = matches[0] print cookie req = urllib2.Request('http://www.nnm.ru') req.add_header("Cookie", "PHPSESSID=" + cookie + ";") f = urllib2.urlopen(req) print f.read().decode('cp1251')
Вобщем, проблема в том, что залогиниться я не могу. Последний “print” выдаёт страничку, по которой видно, что я не залогинен.
Я формирую в скрипте словарь “params”, в котором находятся данные Web-формы, которую мне нужно “заполнить”. Посмотрев в html-код страницы http://www.nnm.ru, в форме для логина я нашёл всего два поля ('login' и ‘passwd’), их и передаю. Куки я получаю, но видимо, какие-то не те (PHPSESSID - видимо - совсем не то, что мне нужно). Что-то я упустил - не пойму, что.
Если на этом форуме есть счастливые пользователи http://www.nnm.ru, прошу помощи - попробуйте воспользоваться своими учётными данными, чтобы протестить скрипт. Или, может, кто и так что-то подскажет, без тестирования…