![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Парсинг капчи + WinInet [D7, XP]
SBvafla © (2010-09-13 23:04:00)Добрый день, вот функция с помощью которой получаю страничку из интернет -
NetHandle := InternetOpen(AName, CERN_PROXY_INTERNET_ACCESS, Pr, nil, 0);
IF Assigned(NetHandle) then
Begin
UrlHandle := InternetOpenUrl(NetHandle, AUrl, nil, 0, INTERNET_FLAG_RELOAD, 0);
IF Assigned(UrlHandle) then
Begin
FillChar(Buffer, SizeOf(Buffer), 0);
repeat
hContent := hContent + Buffer;
FillChar(Buffer, SizeOf(Buffer), 0);
InternetReadFile(UrlHandle, @Buffer, SizeOf(Buffer), BytesRead);
until
BytesRead = 0;
//Тут потрошу данный со странички
....
end;
Else
Msg[1];
InternetCloseHandle(UrlHandle);
end
Else
Mesg[2];
InternetCloseHandle(NetHandle);
Как дополнить эту функцию, чтобы не разрывая сессию получить капчу?(ссылку на которую
я получил со странички)
т.е.
BytesRead = 0;
//Тут потрошу данный со странички
далее я так понимаю надо сменить урл и скачать файл -
InternetCloseHandle(UrlHandle);
UrlHandle := InternetOpenUrl(NetHandle, NEWUrl, nil, 0, INTERNET_FLAG_RELOAD, 0);
AssignFile(AFile, 'C:\test.jpg');
Rewrite(AFile,1);
repeat
InternetReadFile(UrlHandle, @FBu
antonn (2010-09-17 22:54:00) [1]заголовки нужно отправлять, что получил после скачанной страницы, больше сессию хранить негде
Rouse_ (2010-09-17 22:29:00) [2]работай через HttpSendRequest() MSDN под рукой нет - но там по описанию все понятно
sniknik (2010-09-17 21:11:00) [3]> Хм... А это так важно?
вопрос жизни и смерти... :) в новой сессии будет новая капча.
_L_ (2010-09-17 19:01:00) [4]Извините, а в чём сам вопрос-то?
Функция с помощью которой вы получаете страничку из интернета работает?
Или вопрос в том как сам парсинг делать?
> не разрывая сессию
Хм... А это так важно?
Anatoly Podgoretsky (2010-09-14 09:44:00) [5]> SBvafla (13.09.2010 23:11:01) [1]
Чему равно NEWUrl, какая ошибка возникает.
SBvafla (2010-09-13 23:11:00) [6]InternetReadFile(UrlHandle, @FBuffer, SizeOf(FBuffer), BufferLen);
BlockWrite(AFile, FBuffer, BufferLen)
until
BufferLen = 0;
CloseFile(AFile);
...
Но не получается...
Подскажите пожалуста, - как?
сорри сглючило не все скопировал - вот продолжение