Найти - Пользователи
Полная версия: Основы urllib2.
Начало » Web » Основы urllib2.
1
creitve
Суть вопроса - влюбился в питон, решил написать приложение-обработчик таблицы одной бд, чтобы параллельно выучить основы языка. Доступа к бд нет, поэтому логинимся на сайт - получаем таблицу в html - парсим в xml и дальше уже работаем с ним.
Сайт написан перректальным образом, огрехи и ошибки везде, но сейчас не об этом.
Возникла проблема при логине.
Есть три страницы:
первая - страница логина. на ней форма, которая передает методом POST логин и пароль на вторую.
вторая - страница, принимающая логин и пароль, и выдающая меню. Меню содержит ссылки на базу данных с параметрами, передаваемыми методом GET. В том числе передается sessionid (разумно ли открыто передавать sessionid?). Если сразу после логина обновить эту страницу, то оказываешься разлогиненным. То есть фактически логин и старт сессии происходит после перехода на третью страницу.(нормально ли?)
третья страница - собственно таблица бд.
Проблема - после отправки логина-пароля на вторую страницу нужно получить её, чтобы считать ссылку с GET-параметром. Но из гугла я научился делать это тольно одним способом:
req = urllib2.Request('%мой url%', {}, HEADERS)
handle = urllib2.urlopen(req)
print handle.read()
При этом, естественно, получаю незалогиненный вариант второй страницы. Вопрос - как одновременно передать POST запрос и сразу же принять веб-страницу, которая придёт следом, как это было бы в браузере.
Vader
creitve
При этом, естественно, получаю незалогиненный вариант второй страницы. Вопрос - как одновременно передать POST запрос и сразу же принять веб-страницу, которая придёт следом, как это было бы в браузере.
import urllib, urllib2
data = urllib.urlencode({param1:val1, param2:val2})
request = urllib2.urlopen("%мой url%", data)
print request.read()
creitve
Vader
creitve
При этом, естественно, получаю незалогиненный вариант второй страницы. Вопрос - как одновременно передать POST запрос и сразу же принять веб-страницу, которая придёт следом, как это было бы в браузере.
import urllib, urllib2
data = urllib.urlencode({param1:val1, param2:val2})
request = urllib2.urlopen("%мой url%", data)
print request.read()
Спасибо, сейчас попробую.
upd: Всё работает, спасибо!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB