Вот кусочек кода, который ранее отвечал за парсинг Яндекс.вордстата:
- Код: Выделить всё
function TYandexThread.Request: boolean;
var
AValueString: string;
APos: integer;
TempUrl: String;
begin
FSecondNumber := rcNotRequested;
URL := URLTemplate;
Result := False;
FHTTP.Clear;
FResponse.Clear;
if FRandomUserAgent then
FHTTP.UserAgent :=
RandomizeUserAgent;
FHTTP.Timeout := 10000;
FRequestCode := rcErrNotAccess;
TempUrl:='http://kiks.yandex.ru/su/';
repeat
// FHTTP.Clear;
Result:=FHTTP.HTTPMethod('GET', TempUrl);
{if Result and (FHTTP.ResultCode=302) then
begin
TempUrl:=Trim(ExtractHeaderValue(FHTTP.Headers, 'Location'));
if TempUrl='' then
Result:=False;
end;}
until True{(not Result) or (FHTTP.ResultCode<>302)};
if Result then
begin
{ FHTTP.Headers.SaveToFile('Header_kiks.txt');
FHTTP.Cookies.SaveToFile('Cookies_kiks.txt');
FHTTP.Document.SaveToFile('Document_kiks.txt'); }
URL := ReplaceString(URL, '%KW%', EncodeURLElement(KeyWord));
FHTTP.Clear;
FResponse.Clear;
if FHTTP.HTTPMethod('GET', URL) then
begin
// FHTTP.Headers.SaveToFile('Header_'+KeyWord+'.txt');
// FHTTP.Cookies.SaveToFile('Cookies_'+KeyWord+'.txt');
FResponse.LoadFromStream(FHTTP.Document);
FRequestCode := rcErrNotRecogn;
Result := inherited Request;
end;
// FHTTP.Cookies.Clear;
end;
if Result then
begin
FSecondNumber := rcErrNotRecogn;
APos := 1;
// FResponse.SaveToFile('Document_Body.html');
if ExtractBetweenKeys(FResponse.Text, ' — ',
' показ', APos, AValueString) then
begin
if TryStrToInt(AValueString, FRequestCode) then
begin
Result := True;
FSecondNumber := 0;
APos := 1;
if ExtractBetweenKeys(FResponse.Text, '<td class="align-right-td">',
'</td>', APos, AValueString) then
TryStrToInt(AValueString, FSecondNumber);
end;
end;
end;
end;
Для работы с сетью используется библиотека Synapse
Цена и сроки?