Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.11.2013, 14:21   #1
Smagulov85
Форумчанин
 
Аватар для Smagulov85
 
Регистрация: 22.11.2009
Сообщений: 142
По умолчанию Опять Куки

До вчерашнее утра без проблем парсел сайт Почты России пока они , что не изменили и что самое главное не могу теперь вытащить куки
делал так
Цитата:
russHTTP:=TIdHTTP.Create(self);
russCook:=TidCookieManager.Create(r ussHTTP);
RussProxy(Sender);
russHTTP.AllowCookies:=true;
russHTTP.CookieManager:=russCook;
russHTTP.HandleRedirects:=true;
russHTTP.HTTPOptions := russHTTP.HTTPOptions + [hoForceEncodeParams];
russHTTP.ProtocolVersion:=pv1_1;
russHTTP.Request.Host:='www.russian post.ru';
russHTTP.Request.Connection:='keep-alive';
russHTTP.Request.CacheControl:='max-age=0';
russHTTP.Request.Accept:='text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8';
russHTTP.Request.UserAgent:=Form1.E dit8.Text;// Береться из ini файла
russHTTP.Request.Referer:='http://www.russianpost.ru/tracking/';
russHTTP.Request.AcceptLanguage:='r u-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4';
form1.ListBox1.Items.Text:=russHTTP .GET('http://www.russianpost.ru/tracking/');
russHTTP.Response.RawHeaders.Extrac t ('Set-Cookie', Form1.ListBox2.Items); //получаем куки
куков 0

сниффер в браузере показывает вот это

Цитата:
GET /tracking/ HTTP/1.1
Host: www.russianpost.ru
Connection: keep-alive
Cache-Control: max-age=0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36
Accept-Encoding: gzip,deflate,sdch
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4
Cookie: ASP.NET_SessionId=mbnl0x5503bwomusr 5qwex45; uid=f7015828-fd55-4ac5-b2ea-b415a2193f55; SessionId=R2909421572
сниффер в программе показывает вот так

Цитата:
GET /tracking/ HTTP/1.1
Connection: keep-alive
Cache-control: max-age=0
Host: www.russianpost.ru
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding: identity
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36
побывал Response.RawHeaders.Text

Цитата:
Server: nginx/1.0.12
Date: Wed, 20 Nov 2013 09:11:35 GMT
Content-Type: text/html; charset=utf-8
Connection: keep-alive
Keep-Alive: timeout=15
Content-Length: 26796
X-Powered-By: ASP.NET
X-AspNet-Version: 4.0.30319
Cache-Control: private
как можно еще выдернуть куки уже голову сломал!
Если помог: Нажми Весы и оставь отзыв!!!
Smagulov85 вне форума Ответить с цитированием
Старый 20.11.2013, 17:49   #2
Кольша
Далеко не
Участник клуба
 
Аватар для Кольша
 
Регистрация: 11.08.2011
Сообщений: 1,512
По умолчанию

Synapse в помощь.
Кольша вне форума Ответить с цитированием
Старый 21.11.2013, 01:48   #3
Smagulov85
Форумчанин
 
Аватар для Smagulov85
 
Регистрация: 22.11.2009
Сообщений: 142
По умолчанию

Цитата:
Сообщение от Кольша Посмотреть сообщение
Synapse в помощь.
сделал по твоему совету получаю куков 0

Цитата:
procedure TForm1.Button2Click(Sender: TObject);
var
HTTP: THTTPSend;
Res : boolean;
begin
http:=thttpsend.create;
http.TargetHost:='www.russianpost.r u';
http.KeepAlive:=true;
http.Headers.Add('Cache-Control: max-age=0');
http.Headers.Add('Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8');
http.UserAgent:='Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36';
http.Headers.Add('Referer: http://www.russianpost.ru/tracking/');
http.Headers.Add('Accept-Encoding: gzip,deflate,sdch');
http.Headers.Add('Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4');
http.HTTPMethod('GET', 'http://www.russianpost.ru/tracking/');
memo1.Text:=http.Cookies.Text;
end;
ответ от сниффера и там нет куков

Цитата:
GET /tracking/ HTTP/1.0
Host: www.russianpost.ru
Keep-Alive: 300
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36
Cache-Control: max-age=0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Referer: http://www.russianpost.ru/tracking/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4
Если помог: Нажми Весы и оставь отзыв!!!
Smagulov85 вне форума Ответить с цитированием
Старый 21.11.2013, 05:20   #4
Slym
Участник клуба
 
Регистрация: 07.12.2011
Сообщений: 1,025
По умолчанию

1 ты приложил запрос серверу, а ответ сервера не приложил...
и по запросу все верно...
ты подключаешь пустой кукименеджер без кук.
делаешь 1 запрос без кук так как их еще нет, их сервер тебе не прислал.

а для куков с нуля нужно как минимум 2 запроса, первый авторизация, второй данные
Не стесняемся, плюсуем!
Slym вне форума Ответить с цитированием
Старый 21.11.2013, 09:28   #5
Smagulov85
Форумчанин
 
Аватар для Smagulov85
 
Регистрация: 22.11.2009
Сообщений: 142
По умолчанию

Цитата:
Сообщение от Slym Посмотреть сообщение
1 ты приложил запрос серверу, а ответ сервера не приложил...
и по запросу все верно...
ты подключаешь пустой кукименеджер без кук.
делаешь 1 запрос без кук так как их еще нет, их сервер тебе не прислал.

а для куков с нуля нужно как минимум 2 запроса, первый авторизация, второй данные
так вот и не понимаю, что я должен отправить серверу что бы сервер дал мне куки!
Если помог: Нажми Весы и оставь отзыв!!!
Smagulov85 вне форума Ответить с цитированием
Старый 21.11.2013, 14:18   #6
Smagulov85
Форумчанин
 
Аватар для Smagulov85
 
Регистрация: 22.11.2009
Сообщений: 142
По умолчанию

Ну что не кто не может объяснить мне мою ошибку!!
Если помог: Нажми Весы и оставь отзыв!!!
Smagulov85 вне форума Ответить с цитированием
Старый 21.11.2013, 18:33   #7
Slym
Участник клуба
 
Регистрация: 07.12.2011
Сообщений: 1,025
По умолчанию

а ничего что там капча?
Не стесняемся, плюсуем!
Slym вне форума Ответить с цитированием
Старый 21.11.2013, 22:25   #8
Smagulov85
Форумчанин
 
Аватар для Smagulov85
 
Регистрация: 22.11.2009
Сообщений: 142
По умолчанию

Цитата:
Сообщение от Slym Посмотреть сообщение
а ничего что там капча?
победил я эти куки короче! надо сделать 2 get один в начале запроса
russHTTP.GET('http://www.russianpost.ru/');

а потом полный запрос

russHTTP .GET('http://www.russianpost.ru/tracking/');

тогда куки появляются
Если помог: Нажми Весы и оставь отзыв!!!
Smagulov85 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
опять я опять мемо nyasha2013 Помощь студентам 2 19.05.2011 21:09
Куки ilSMoKEli Работа с сетью в Delphi 1 15.06.2010 11:09
И опять мэйлы.. Опять... Pusher PHP 6 28.06.2008 03:08