Главная Главная страница форума Регистрация Вход
Новые сообщения Участники форума Правила форума Поиск
Страница 1 из 11
Модератор форума: stalker, Ekz 
Форум » Все о Delphi » Начинающим » Программное нажатие кнопки на веб-странице. +Вопрос пр save. (2 вопроса к специалистом.)
Программное нажатие кнопки на веб-странице. +Вопрос пр save.
DublДата: Воскресенье, 17.10.2010, 06:06 | Сообщение # 1
Ранг 3
Группа: Проверенные
Сообщений: 73
Награды: 0
Репутация: 0
Статус: Offline
Итак. Я чуть разобрался, пока ждал ответа в своей первой теме(пока не дождался), решил написать загрузчик с ютьюба, по пути столкнулся с такими проблемами:

1. Я вообще не знаю через, что коннектиться к веб-странице.
2. Я не знаю как нажать программно кнопку на веб-странице вида .
3. Я знаю как скачать файл с веб-страницы(DownloadFile('URL страницы', 'c:\1.txt');). НО! Я не знаю как реализовать функцию выбора пути(аналог проводника в Виндоусе), я пытался попробовать по уроку про сохранение текста, но не придумал ничего.

Помогите плиз с этими проблемами.

Добавлено (17.10.2010, 06:06)
---------------------------------------------
Смотрите какие пироги. Я прогуглил и кое-как сделал тест-программу, которая должна тыкнуть нужную мне кнопку на странице.

- это кнопка которую я должен тыкнуть

Проблема в том, что страница то открывается, а вот кнопка не тыкается, помогите плиз.

Вот мой код:

Code

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, OleCtrls, SHDocVw, StdCtrls;

type
TForm1 = class(TForm)
WebBrowser1: TWebBrowser;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

{нажимаем кнопку}
procedure TForm1.button1Click(sender: tobject);
var
ovelements: olevariant;
i: integer;
begin
ovelements := webbrowser1.oleobject.document.forms.item(0).elements;
for i := 0 to (ovelements.length - 1) do
if (ovelements.item(i).tagname = 'input') and
(ovelements.item(i).type = 'submit') and
(ovelements.item(i).value = 'Скачать') and
(ovelements.item(i).id = 'submitbutton') then
ovelements.item(i).click;
end;
{/нажимаем кнопку}

procedure TForm1.Button2Click(Sender: TObject);
begin
webbrowser1.Navigate('www.skachivai.ru/howto.html');
end;

end.



Сообщение отредактировал Dubl - Воскресенье, 17.10.2010, 06:07
 
AdminДата: Воскресенье, 17.10.2010, 13:32 | Сообщение # 2
Ранг 10
Группа: Пользователи
Сообщений: 1268
Награды: 16
Репутация: 2
Статус: Offline
На сколько мне известно данные видео передаются в потоке, а не обычным файлом. Вы думаю сложную задачку для начинающего взяли. Начните с калькулятора :), я серьезно smile

Не оказываю помощь через личные сообщения и ICQ
 
DublДата: Воскресенье, 17.10.2010, 19:42 | Сообщение # 3
Ранг 3
Группа: Проверенные
Сообщений: 73
Награды: 0
Репутация: 0
Статус: Offline
Admin, я не изобретаю велосипед)))) Я сам не знаю как качать видео с ютуба, я просто хочу автоматизировать вот эту систему www.skachivai.ru/howto.html . Вот я открыл программно эту страницу, мне нужна кнопка скачать, я попытался найти ее программно и нажать, но ничего не вышло.

Добавлено (17.10.2010, 17:19)
---------------------------------------------
И еще, может кто подкинуть нормальную статью или труд по теме Get и Post, я так понимаю это способы получать информацию с веб-страниц и передавать ее, ну вот мне нужно это)))

Добавлено (17.10.2010, 19:22)
---------------------------------------------
Все. Я понял что через эту фигню ничего путного не выйдет. Поэтому нашел инфы с инди и с Гет и Пост запросами, щас разбираю их, как будут проблемы отпишусь))

Добавлено (17.10.2010, 19:42)
---------------------------------------------
Собственно говоря теперь делаю через этот сервис http://ru.savefrom.net/ . Я сделал пост запрос в параметрами, и тут у меня в переменную S занесся исходный код страницы которая загружается после пост запроса. На ней есть некая ссылка на скачивание файла:

Code

<a href="../http://savefrom.net/get.php?d=21067741&t=c55c39e73bfdac209d6643dd4c9e47f2" target="_blank">MP4</a>

В сниффере

Code

(Request-Line):GET /media/?d=21067741&t=c55c39e73bfdac209d6643dd4c9e47f2 HTTP/1.1

Так как же мне спарсить это значение, чтобы скачать по нему файл? Если в исходном коде нет ссылки.

Вот мой код:

Code

unit Unit1;

interface

uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, ExtCtrls, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection,
    IdTCPClient, IdHTTP;

type
    TForm1 = class(TForm)
      IdHTTP1: TIdHTTP;
      Edit1: TEdit;
      Label1: TLabel;
      Button1: TButton;
      Button2: TButton;
      procedure Button2Click(Sender: TObject);
    private
      { Private declarations }
    public
      { Public declarations }
    end;

var
    Form1: TForm1;

implementation
   S:string;
{$R *.dfm}

procedure TForm1.Button2Click(Sender: TObject);
var Data:TStringList;
begin
Data:=TStringList.Create;
Data.Add('sf_url='+Edit1.Text);
Data.Add('sf_submit.x=17');
Data.Add('sf_submit.y=15');
S:=IdHTTP1.Post('http://ru.savefrom.net/', Data);

end;

end.


Сообщение отредактировал Dubl - Воскресенье, 17.10.2010, 19:43
 
Форум » Все о Delphi » Начинающим » Программное нажатие кнопки на веб-странице. +Вопрос пр save. (2 вопроса к специалистом.)
Страница 1 из 11
Поиск:

Copyright DelphiDevelop.ru © 2008-2018
Хостинг от uCoz