IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

> Вопрос работа с http
Unconnected
сообщение 5.03.2011 22:07
Сообщение #1


mea culpa
*****

Группа: Пользователи
Сообщений: 1 372
Пол: Мужской
Реальное имя: Николай

Репутация: -  24  +


Привет всем. Возникла такая задача - нужно научить прогу скачивать файл с файлообменника. И всё бы хорошо, делать это я умею (да и гугл знает), если есть конкретная ссылка на файл, а на нужном файлообменнике (depositfiles.com, да он и не один такой) сначала нужно подождать 60 сек, а потом уже дадут ссылку. И я вот не знаю, как вообще этот механизм работает и как с ним взаимодействовать. Так понял, там скрипт крутит счетчик, и в нужный момент запрашивает ссылку, что ли, и отображает.. как это дело парсить (или что с ним делать вообще wacko.gif )?


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 6.03.2011 20:17
Сообщение #2


Гость






Не, не так. Смотри:

function Get_Address (s : string) : string;
var
P_Start, P_Finish : Integer;
begin
P_Start := Pos('/get_file.php?fid=', s);
P_Finish := PosEx('''', s, P_Start);

result := 'http://depositfiles.com/ru' + Copy(s, P_Start, P_Finish - P_Start);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
mpFormDS : TIdMultiPartFormDataStream;
My_URL, st:string;
first_Ans : String;
begin
try
IdHTTP1.Request.ContentType := 'multipart/form-data';
IdHTTP1.HandleRedirects := true;
mpFormDS := TIdMultiPartFormDataStream.Create;
mpFormDS.AddFormField('submit', 'FREE downloading'); // Имитация нажатия на кнопку "Халява" : )

MyURL := Edit1.Text;
First_Ans := IdHTTP1.Post(MyURL, mpFormDS); // Первый ответ, его будем парсить для "fid="
Sleep(1000); // Чуть-чуть подождать
Memo1.Text := First_Ans; // Показать, что взяли

// Теперь ждем минимум 60 сек. Я сделал по-наглому:
Sleep(65000);
// Можешь просто повесить на таймер, можешь другим потоком ждать

// Ага, прошли 60 сек. Что дальше? А вот что:
st := IdHTTP1.get(Get_Address(first_Ans)); // Получаем ответ сервера на GET-запрос (не POST)
memo1.Lines.Add('GET:');
memo1.Lines.Add(st);

mpFormDS.Free;
except
// Сообщаем об ошибке
Form1.Caption := 'Error';
end;
end;


Вот чего я наблюдаю в Мемо:
Цитата
GET:
<form action="http://fileshare177.depositfiles.com/auth-12994305304167710eedc23c832841b4-109.66.201.115-624149232-34756774-guest/FS177-9/cs16full.exe" method="get" onSubmit="download_started();show_begin_popup(0);">
<input class="download" value="Скачать файл" type="submit"/>
</form>

Ну, что с этим делать - разберешься, я думаю... Кракозябры - из-за кодировки, я предупреждал.


Эскизы прикрепленных изображений
Прикрепленное изображение
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Unconnected   Вопрос работа с http   5.03.2011 22:07
volvo   Un, ты меня удивляешь :) У тебя браузер какой? FF?...   5.03.2011 23:22
Unconnected   Да сниффил поначалу, сторонней прогой, но потом ре...   6.03.2011 0:05
volvo   Без боя не отдаст. Там вся игра должна происходить...   6.03.2011 4:02
Unconnected   Короче сделал всё по инструкции (кстати, вот интер...   6.03.2011 17:36
volvo   Попробуй чуть по-другому: ты в результате посылки ...   6.03.2011 18:38
Unconnected   Да, получаю страницу со временем, вытаскиваю ID, ш...   6.03.2011 19:24
volvo   Не, не так. Смотри: function Get_Address (s : str...   6.03.2011 20:17
Unconnected   Ураа, заработало :)) Я сначала и Get-ом тоже пробо...   6.03.2011 21:13
Unconnected   Ааа блин, щас с ума сойду :wacko: На второй день ...   14.03.2011 21:25
volvo   Не понял... Что куда ты вставляешь? Вот я сейчас в...   14.03.2011 22:10
Unconnected   А, чёрт... вот же, совсем забыл про ограничения на...   14.03.2011 22:27
Unconnected   И ещё - просто может пригодится кому-нибудь - част...   14.03.2011 23:25
Unconnected   Принимается, как видно в правом окне, два печенья....   17.03.2011 18:41


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 8.07.2025 11:44
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"