|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
31.01.2013, 00:37 | #11 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,342
|
Пожалуйста.
Насчет парсера. Вы могли уже заметить из кода авторизации, как в синапсе получить текст страницы: Код:
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
31.01.2013, 04:48 | #12 |
Далеко не
Участник клуба
Регистрация: 11.08.2011
Сообщений: 1,512
|
BDA опередил немного..
Код:
Последний раз редактировалось Кольша; 31.01.2013 в 04:52. |
31.01.2013, 09:40 | #13 |
Форумчанин
Регистрация: 04.01.2013
Сообщений: 171
|
Спасибо всем ! Парсер работает. Вот только все равно при авторизации не отправляются куки. И при попытке спарсить я получаю страницу на которой нужно авторизоваться.
Да и вот что заметил, куки отправляются вместе с get запросом Код:
|
31.01.2013, 09:55 | #14 |
Форумчанин
Регистрация: 12.02.2009
Сообщений: 215
|
to Pearl777 - поверь мне на слово, пока объект синапса живой у него ВСЕГДА сохранены куки. И это (сугубо мое личное мнение) самый надежный класс для рабты с HTTP.
Насчет "не отправляются куки" - если про код из первого поста то ничего и не отправится, POST - это первое действие, хочеш чтоб отправились в нем куки, назначь их предварительно объекту to Кольша - не в обиду, но убил-бы за такой код, человек не может с куками разобраться (первый раз синапс увидел) а ты ему пример с использованием стандартной функции приводиш. Этот код хорошо подходит для парсера, а для авторизации...
Помог с вопросом - тыркаем в весы, Вам не сложно, а мне приятно
|
31.01.2013, 11:54 | #15 |
Далеко не
Участник клуба
Регистрация: 11.08.2011
Сообщений: 1,512
|
Mifody, я как бы если что привел пример для парсера, если бы я приводил пример для куков, я бы использовал httpsend
|
31.01.2013, 18:32 | #16 |
Форумчанин
Регистрация: 04.01.2013
Сообщений: 171
|
Всем спасибо! Разобрался с этой проблемой.
|
04.02.2013, 09:36 | #17 |
Пользователь
Регистрация: 10.12.2011
Сообщений: 26
|
Используй эту функцию парсинга - http://www.vans-soft.ru/2011/10/pars.html
|
03.03.2013, 10:26 | #18 |
Регистрация: 22.09.2011
Сообщений: 4
|
Проблема с заменой Cookies, Synapse, Mail.ru
Добрый день, пишу программу,использую Synapse, получилось реализовать авторизацию на сайте майл.ру. Теперь хочу реализовать программную замену cookies.
Авторизацию реализовал, таким способом: Код HTML:
procedure TForm1.BitBtn1Click(Sender: TObject); var Login, Domain, Password:string; HTTP:THTTPSend; begin Login:=Edit1.Text; Domain:=ComboBox1.Text; Password:=Edit2.Text; HTTP:=THTTPSend.Create; HTTP.UserAgent:= 'Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12'; HTTP.MimeType:='application/x-www-form-urlencoded'; C1:=TStringStream.Create('Domain=mail.ru'+'&Login='+Login+'&Password='+Password+'&new_auth_form=1'); HTTP.Document.LoadFromStream(C1); HTTP.HTTPMethod('POST', 'https://auth.mail.ru/cgi-bin/auth'); end; Замену Cookies пытаюсь реализовать путем: Код HTML:
HTTP.Cookies.Clear; HTTP.Cookies.Text:=Memo1.lines.text; HTTP.HTTPMethod('GET', 'https://e.mail.ru/cgi-bin/msglist?bak=1'); Код HTML:
Mpop=1362289969:59616b660778756d19050219081d00071c0502064966535c465d000402050516037305165c4a5b515f5e5b5e5a105 956505d1e444d:ХХХХХХ@mail.ru: t=obLD1AAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAABfAB0DvwcA; expires=Fri, 30 Aug 2013 06:05:24 GMT; path=/; domain=.mail.ru mrcu=B8495132E82479C6DF550147BDC3; expires=Wed, 01 Mar 2023 06:05:24 GMT; path=/; domain=.mail.ru |
03.03.2013, 11:27 | #19 |
Далеко не
Участник клуба
Регистрация: 11.08.2011
Сообщений: 1,512
|
Мне кажется куки в memo имеют не правильный вид..
P.s посмотрите сначала оригинальные куки: Код:
И еще куки могут привязываться к IP Последний раз редактировалось Кольша; 03.03.2013 в 11:30. |
03.03.2013, 11:53 | #20 |
Регистрация: 22.09.2011
Сообщений: 4
|
Использовал компонент Memo1 для того, чтобы мог допустим вставить туда любые нужные мне куки и пробовать авторизоваться через них.
По Вашему совету просмотрел ShowMessage(HTTP.Cookies.Text); показывает тоже самое, что и лежит в Memo1. На одном из форумов прочитал, что параметр HTTP.Cookies.Text может вытаскивать не все куки, там предложили использовать самописную функцию и вытаскивать куки из заголовков Http. Код HTML:
uses StrUtils; function Setkuki(const x2: string):string; var CookieList:TstringList; cookie,x3:string; y,i:integer; begin x3:=x2; if pos('Set-Cookie:',x3)<>0 then begin CookieList:=TstringList.Create; while Pos('Set-Cookie', x3) <> 0 do begin y := Pos('Set-Cookie', x3); i := PosEx(': ', x3, y) + 2; CookieList.Add(Copy(x3, i, PosEx(';', x3, i) - i)); Delete(x3, y, 10); end; for i := 0 to CookieList.Count - 1 do cookie := cookie + CookieList.Strings[i] + '; '; CookieList.Free; end; Result:=cookie; end; Теперь код нажатия кнопки у меня выглядит так Код HTML:
procedure TForm1.BitBtn1Click(Sender: TObject); var Login, Domain, Password:string; HTTP:THTTPSend; begin Login:=Edit1.Text; Domain:=ComboBox1.Text; Password:=Edit2.Text; HTTP:=THTTPSend.Create; HTTP.UserAgent:= 'Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12'; HTTP.MimeType:='application/x-www-form-urlencoded'; C1:=TStringStream.Create('Domain=mail.ru'+'&Login='+Login+'&Password='+Password+'&new_auth_form=1'); HTTP.Document.LoadFromStream(C1); HTTP.HTTPMethod('POST', 'https://auth.mail.ru/cgi-bin/auth'); ShowMessage(HTTP.Cookies.Text); cookie:=setkuki(HTTP.Headers.Text); Memo1.Lines.Add(cookie); end; Вот код второй кнопки: Код HTML:
HTTP.Clear; HTTP.Cookies.Clear; // здесь я уже вставил новые куки в Memo1, вернее я изменил только один параметр Mpop, насколько мне известно он отвечает за авторизацию на майл.ру HTTP.Cookies.Add(Memo1.Lines.Text); HTTP.HTTPMethod('POST', 'https://e.mail.ru/cgi-bin/msglist?bak=1'); ShowMessage(HTTP.Headers.Text); ShowMessage(HTTP.Cookies.Text); Возможно я делаю, что-то неправильно. Я в этом деле новичок, так сказать далеко до Вашего уровня, буду благодарен Вам за помощь и подробные объяснения, в моем случае. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Не пашет synapse | bulldog5293 | Компоненты Delphi | 0 | 21.10.2011 19:42 |
Synapse | FanRa3 | Общие вопросы Delphi | 1 | 09.12.2010 21:06 |
Куки | ilSMoKEli | Работа с сетью в Delphi | 1 | 15.06.2010 11:09 |
Куки | Kinematik | Работа с сетью в Delphi | 0 | 27.12.2008 04:53 |