Добрый день. Есть следующий код(поток):
Код:
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&l imitcontext=0&exclude=&filter=&sort=3&adult=soft&p agelen=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=...%D0%BC%D1%8 3
Cookie: ruid=9l4ABpCeR1BGIgAAAc5i3wB=; dvr=gUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA:1368360797; lvr=1368363315; xtvrn=$514210$; xtan=-; xtant=1; __utma=21227320.1028535311.1367572614.1367572614.1 367572614.1; __utmz=21227320.1367572614.1.1.utmcsr=(direct)|utm ccn=(direct)|utmcmd=(none); dv=gUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA:1368360797; nlv=1368365221; __utma=112620571.1826725587.1367572618.1367759211. 1368360808.3; __utmz=112620571.1367759211.2.2.utmcsr=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%B0%D1%87%D0%BD%D0%BE%D0%B3%D0%BE%20%D0%B4%D0%B E%D0%BC%D0%B8%D0%BA%D0%B0%20%D0%BC%D0%BE%D1%81%D0% BA%D0%B2%D0%B0&dlang=0&mimex=0&st_date=&end_date=& news=0&limitcontext=0&exclude=&filter=&sort=3&page len=50&adult=soft 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?)