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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.05.2013, 18:08   #1
Pcrepair
Форумчанин
 
Регистрация: 04.01.2011
Сообщений: 260
По умолчанию idHttp и отправка КУКИ в сервер

Добрый день. Есть следующий код(поток):

Код:
function TLoader.LoadSearchPage(const Reqest:string):string;
const
SMUrl = 'http://nova.rambler.ru/search?query=';
//UrlEnd ='&pagelen=50';
UrlEnd ='&dlang=0&mimex=0&st_date=&end_date=&news=0&limitcontext=0&exclude=&filter=&sort=3&pagelen=50&adult=soft';
var
FullUrl:string;
begin
FIdHttp:=TidHttp.Create(nil);
FSSL:=TIdSSLIOHandlerSocketOpenSSL.Create;
FCookie:=TIdCookieManager.Create;
    try
      try
        FIdHttp.Request.UserAgent:='Mozilla/5.0 (Windows NT 5.1; rv:20.0) Gecko/20100101 Firefox/20.0';
        FIdHttp.Request.AcceptLanguage:='ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3';
        //FIdHttp.Request.AcceptCharSet:='windows-1251,utf-8;q=0.7,*;q=0.3';
        FIdHttp.Request.Connection:='Keep-Alive'; (*???*)
        FIdHttp.Request.ContentType:='text/html';   (*???*)
        FIdHttp.Request.Accept:='text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
        FIdHttp.HandleRedirects := True;
        FIdHttp.ConnectTimeout:=50000;
        FIdHttp.ReadTimeout:=50000;
        FIdHttp.AllowCookies:=True;

        FIdHttp.IOHandler:=FSSL;
        FIdHttp.CookieManager:=FCookie;

        FullUrl:=(SMUrl+Reqest+UrlEnd);
        Result:=AnsiLowerCase(FIdHttp.Get(FIdHttp.URL.URLEncode(FullUrl)));
      except
        Result:='Error Loadind Page';
        Exit;
      end;
    finally
      FreeAndNil(FIdHttp);
      FreeAndNil(FSSL);
      FreeAndNil(FCookie);
    end;
end;
вроде бы все работает, но Мурзилла в сервер отсылает следующее:

GET /search?dlang=0&mimex=0&st_date=&end _date=&news=0&limitcontext=0&exclud e=&filter=&sort=3&adult=soft&pagele n=50&query=%D0%B7%D0%B0%D0%B3%D0%BE %D1%82%D0%BE%D0%B2%D0%BA%D0%B0+%D0% B4%D1%80%D0%BE%D0%B2+%D0%BD%D0%B0+% D0%B7%D0%B8%D0%BC%D1%83 HTTP/1.1
Host: nova.rambler.ru
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:20.0) Gecko/20100101 Firefox/20.0
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
DNT: 1
Referer: http://nova.rambler.ru/search?dlang=...B8%D0%BC%D1%83
Cookie: ruid=9l4ABpCeR1BGIgAAAc5i3wB=; dvr=gUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA :1368360797; lvr=1368363315; xtvrn=$514210$; xtan=-; xtant=1; __utma=21227320.1028535311.13675726 14.1367572614.1367572614.1; __utmz=21227320.1367572614.1.1.utmc sr=(direct)|utmccn=(direct)|utmcmd= (none); dv=gUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA: 1368360797; nlv=1368365221; __utma=112620571.1826725587.1367572 618.1367759211.1368360808.3; __utmz=112620571.1367759211.2.2.utm csr=nhp|utmccn=(not%20set)|utmcmd=( not%20set); top100rb=NzQ2KzQ5KzEwNQ==; __utmc=21227320; __utmc=112620571; spravka=d

тогда как загрузчик на idHTTP в сервер шлет:

GET /search?query=%D1%81%D1%82%D1%80%D0% BE%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D1 %81%D1%82%D0%B2%D0%BE%20%D0%B4%D0%B 0%D1%87%D0%BD%D0%BE%D0%B3%D0%BE%20% D0%B4%D0%BE%D0%BC%D0%B8%D0%BA%D0%B0 %20%D0%BC%D0%BE%D1%81%D0%BA%D0%B2%D 0%B0&dlang=0&mimex=0&st_date=&end_d ate=&news=0&limitcontext=0&exclude= &filter=&sort=3&pagelen=50&adult=so ft HTTP/1.1
Connection: Keep-Alive
Content-Type: text/html; charset=ISO-8859-1
Host: nova.rambler.ru
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding: identity
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:20.0) Gecko/20100101 Firefox/20.0

+++++++++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++ +++++++++++
заметно что загрузчик забыл отослать Referer и Cookie
в прынципе наверно Referer не очень то и нужно? а вот без Cookie можно очень скоро получить БАН от поисковика
Внимание! Вопросы:
1. так ли нужны Referer и Cookie? (вопрос для тех кто хакал поисковики)
2. как все же запихнуть в поисковик Cookie(использовать POST+СПИСОК вместо GET?)
Pcrepair вне форума Ответить с цитированием
Старый 12.05.2013, 18:20   #2
Kix.IV
Участник клуба
 
Регистрация: 11.08.2012
Сообщений: 1,226
По умолчанию

Цитата:
в прынципе наверно Referer не очень то и нужно? а вот без Cookie можно очень скоро получить БАН от поисковика
Внимание! Вопросы:
1. так ли нужны Referer и Cookie? (вопрос для тех кто хакал поисковики)
Ни Referer ни Cookie не нужны для поиска.
Referer нужен для того что бы поисковик мог узнать, что вы только что смотрели, и использовать эту и другую информацию, что бы впарить вам более подходящую рекламу.
Без Cookie бан не должны получить. По крайней мере гугл меня не банит, как это в рамблере я не знаю.
Поисковики используют Cookie, что бы идентифицировать вас и на основе собранной ранее информации впаривать вам подходящую рекламу.
Цитата:
2. как все же запихнуть в поисковик Cookie(использовать POST+СПИСОК вместо GET?)
Для этого в Indy есть специальный компонент(и вроде бы не один). Название, а также, как им пользоваться, сами можете найти.
Kix.IV вне форума Ответить с цитированием
Старый 12.05.2013, 18:30   #3
Pcrepair
Форумчанин
 
Регистрация: 04.01.2011
Сообщений: 260
По умолчанию

да есть есть компонент
но почему в передаче данных от загрузчика серверу не передачи КУКИ?
Pcrepair вне форума Ответить с цитированием
Старый 12.05.2013, 18:36   #4
Kix.IV
Участник клуба
 
Регистрация: 11.08.2012
Сообщений: 1,226
По умолчанию

Цитата:
Сообщение от Pcrepair Посмотреть сообщение
да есть есть компонент
но почему в передаче данных от загрузчика серверу не передачи КУКИ?
Думаю простым TIdSSLIOHandlerSocketOpenSSL.Create и FIdHttp.CookieManager:=FCookie здесь не обойтись(нужно ещё что-то где-то чему-то присвоить). Попробуйте разместить эти компоненты на форму и посмотреть, что будет.
Kix.IV вне форума Ответить с цитированием
Старый 12.05.2013, 19:54   #5
kta87
Форумчанин
 
Аватар для kta87
 
Регистрация: 22.02.2010
Сообщений: 912
По умолчанию

Цитата:
Сообщение от Kix.IV Посмотреть сообщение
Cookie не нужны для поиска.
С Google - Да, а вот Yandex банит на рас, два! Как Rambler не знаю, но вроде они стремятся к google технологиям, возможно что просьбы ввести защитный код не будет.
С Yandex + Idhttp от Indy стандартные печенки не прокатывают, как раз щас пишу свою функцию для получения и отправки.
П.С. Если используете стандартный IdHTTP последней версии от Indy, то его перенастроить нужно. Параметры по умолчанию - оЦтоЙ!

Последний раз редактировалось kta87; 12.05.2013 в 20:03.
kta87 вне форума Ответить с цитированием
Старый 12.05.2013, 20:26   #6
Kix.IV
Участник клуба
 
Регистрация: 11.08.2012
Сообщений: 1,226
По умолчанию

Цитата:
Сообщение от kta87 Посмотреть сообщение
С Google - Да, а вот Yandex банит на рас, два! Как Rambler не знаю, но вроде они стремятся к google технологиям, возможно что просьбы ввести защитный код не будет.
С Yandex + Idhttp от Indy стандартные печенки не прокатывают, как раз щас пишу свою функцию для получения и отправки.
П.С. Если используете стандартный IdHTTP последней версии от Indy, то его перенастроить нужно. Параметры по умолчанию - оЦтоЙ!
Только что проверил. Яндекс нормально работает без кукисов.
UPD: Проверил Рамблер(последний раз открывал его где-то два года назад), тоже работает.

Последний раз редактировалось Kix.IV; 13.05.2013 в 12:46.
Kix.IV вне форума Ответить с цитированием
Старый 12.05.2013, 21:05   #7
kta87
Форумчанин
 
Аватар для kta87
 
Регистрация: 22.02.2010
Сообщений: 912
По умолчанию

Kix.IV, да, Вы правы! Проблема с Yandex была в другом. Крайне недопустимость использование стандартного UserAgent для idHTTP
kta87 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
удалить куки из IdHTTP.Request. bakanaev Общие вопросы Delphi 3 07.11.2012 19:24
idhttp ssl авторизация отправка данных post tauxxx Работа с сетью в Delphi 3 31.05.2012 14:17
idhttp - куки - http (ТРОЕВИДНОЕ СУЩЕСТВО) Игорь22 Работа с сетью в Delphi 3 16.07.2010 05:25
добавить куки в idhttp пауэрлифтинг Работа с сетью в Delphi 1 28.04.2010 03:21
WebBrowser и IdHTTP связать КУКИ? alexpro2004 Работа с сетью в Delphi 3 20.11.2009 10:15