Модераторы: Snowy, Poseidon, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Берем данные с интернет-страницы. как это сделать?.. 
:(
    Опции темы
Vladimir_K
Дата 17.12.2007, 17:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 2.12.2006

Репутация: нет
Всего: 1



Привет всем!
Придумал я себе новую головную боль!
Задача такая: подключиться к инету, взять данные со страницы и вывести в окно программы.
Indy я скачал, просмотрел, скажу прямо - темный лес... Давненько я делфи не занимался - многое уже подзабылось.
Использую такой код:
Код

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, IdHttp, StdCtrls, ComCtrls;
.
.
.
procedure TForm1.Button1Click(Sender: TObject);
var http: TIdHttp;
    s: string;
begin
  RichEdit1.Clear;
  http:=TIdHTTP.Create(nil);
  try
    s:=http.Get('http://xerurg.ru/forex.php');
  except
    ShowMessage('Неудача.');
  end;

  RichEdit1.Lines.Add(s);
  http.Free;
end;

Бывает, что страница скачивается, но как-то не полностью - на странице в инете какие-то слова есть, а у меня в окне проги их нет...
Правильный ли я код использую? Есть ли особенности при подобном скачивании текста с html, или php страницы?
Ой, вопросов много... помогите, кто чем может!
--------------------
Судя по всему, у меня огромное количество мозгов - мне требуется уйма времени, чтобы ими пораскинуть
PM MAIL ICQ   Вверх
MetalFan
Дата 17.12.2007, 18:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 14
Всего: 128



Цитата(Vladimir_K @  17.12.2007,  17:02 Найти цитируемый пост)
но как-то не полностью - на странице в инете какие-то слова есть, а у меня в окне проги их нет

сынок, это - фантастика


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
Vladimir_K
Дата 17.12.2007, 18:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 2.12.2006

Репутация: нет
Всего: 1



Ну да! Нет и все! Серьезно!
Начало страницы есть, конец - тоже, в середине куча текста... Но не весь!
--------------------
Судя по всему, у меня огромное количество мозгов - мне требуется уйма времени, чтобы ими пораскинуть
PM MAIL ICQ   Вверх
MetalFan
Дата 17.12.2007, 19:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 14
Всего: 128



значит там скрипт или фрейм или еще какая-то хитрость


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
Vladimir_K
Дата 17.12.2007, 20:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 2.12.2006

Репутация: нет
Всего: 1



А может есть способ просто найти на странице нужную инфу (цифры, слова) без загрузки кода страницы в эту переменную "s"?

Просматриваю HTML-код страницы в браузере - все нормально. При пересылке в мою прогу что-то теряется...

Это сообщение отредактировал(а) Vladimir_K - 17.12.2007, 21:35
--------------------
Судя по всему, у меня огромное количество мозгов - мне требуется уйма времени, чтобы ими пораскинуть
PM MAIL ICQ   Вверх
MetalFan
Дата 17.12.2007, 22:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 14
Всего: 128



Цитата(Vladimir_K @  17.12.2007,  20:58 Найти цитируемый пост)
что-то теряется


ну так ты определись, что теряется то. мы то тут при чем?
вот когда определишься, то либо TWebBrowser заюзаешь, либо поймешь, что там откуда на странице берется


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
Vladimir_K
Дата 17.12.2007, 23:23 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 2.12.2006

Репутация: нет
Всего: 1



Извините, я никому не хотел надоедать... так получилось  smile 
Я понял причину.
Я пытаюсь зайти на одну из страниц сайта, на которую доступ есть только по паролю.
В браузере IE вхожу на эту страницу без проблем - используется автовход (наверное мой логин и пароль сохранены в куках на моем компе), а из проги войти туда не могу - предлагается ввести пароль...
То есть ничего не "теряется" - дурья моя башка, а просто не передается то, чего нет.
Вот так. Есть ли выход из данной ситуации?
--------------------
Судя по всему, у меня огромное количество мозгов - мне требуется уйма времени, чтобы ими пораскинуть
PM MAIL ICQ   Вверх
MetalFan
Дата 17.12.2007, 23:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 14
Всего: 128



Цитата(Vladimir_K @  17.12.2007,  23:23 Найти цитируемый пост)
Есть ли выход из данной ситуации?

есть. сначало залогиниться


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
Vladimir_K
Дата 18.12.2007, 00:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 2.12.2006

Репутация: нет
Всего: 1



Так я залогинен. Из IE вхожу без проблем. Из проги - нет...
При входе на страницу при помощи браузера я логин и пароль не ввожу.
Проблема научить прогу использовать для входа логин и пароль, которые есть у браузера.

Это сообщение отредактировал(а) Vladimir_K - 18.12.2007, 00:14
--------------------
Судя по всему, у меня огромное количество мозгов - мне требуется уйма времени, чтобы ими пораскинуть
PM MAIL ICQ   Вверх
elementos
Дата 18.12.2007, 13:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 10.12.2007

Репутация: нет
Всего: нет



вставлю свои пять копеек  smile 
логично, что нужно залогинится в программе. исследовать сначала html страницу с формой, куда передается логин и пасс, найти там название этих полей, затем передать логин и пасс через idhttp компоненту, а после уже обрабатывать сам полученный html. 
пример:

Код

procedure TForm1.Button1Click(Sender: TObject);
var Data: TIdMultiPartFormDataStream;
begin
Data:=TIdMultiPartFormDataStream.Create;
try
Data.AddFormField('form_sent','1');
Data.AddFormField('redirect_url','index.php'); //  куда редиректит после входа
Data.AddFormField('username','VasyaPupkin'); // поле ввода логина
Data.AddFormField('password','12345678');   // поле ввода пароля
WB_LoadHTML(Web, HTTP.Post('http://forum.мах.ru/login.php?action=in',Data));
finally
Data.Free;
end;
end;



Web - TWebbrowser
Http - TIdhttp

процедура выглядит так:
 
Код

procedure WB_LoadHTML(WebBrowser: TWebBrowser; HTMLCode: string);
var
sl: TStringList;
ms: TMemoryStream;
begin
WebBrowser.Navigate('about:blank');
while WebBrowser.ReadyState < READYSTATE_INTERACTIVE do
Application.ProcessMessages;
if Assigned(WebBrowser.Document) then begin
sl := TStringList.Create;
try
ms := TMemoryStream.Create;
try
sl.Text := HTMLCode;
sl.SaveToStream(ms);
ms.Seek(0, 0);
(WebBrowser.Document as IPersistStreamInit).Load(TStreamAdapter.Create(ms));
finally
ms.Free;
end;
finally
sl.Free;
end;
end;
end;


не забудьте кукиманагер на форму положить, и привязать его к idhttp

Это сообщение отредактировал(а) elementos - 18.12.2007, 17:14
PM MAIL   Вверх
Gess
Дата 18.12.2007, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 17.12.2007
Где: Москва

Репутация: нет
Всего: нет



Хотелось бы решить следующую "проблему"


При работе со страницей

WebBrowser1.Navigate('https://www.np-ats.ru/reports.jsp?part=1')

возникает следующее сообщение
user posted image

такое же "безобразие" и при попытке получить файл с сайта

перерыл инет, ни настройки браузера, ни отключение всего в "Центре безопасности" проблему не решают.

Как избавиться от этих назойливых сообщений?

PM MAIL   Вверх
MetalFan
Дата 18.12.2007, 17:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 14
Всего: 128



Gess, создай отдельную тему


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
Vladimir_K
Дата 18.12.2007, 20:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 2.12.2006

Репутация: нет
Всего: 1



Расположил на форме IdHTTP и IdCookieManager. 
IdHTTP привязал к IdCookieManager.
Вот то, что у меня в uses:

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, IdHttp, StdCtrls, ComCtrls, ActiveX, MsHtml, IdBaseComponent,
  IdCookieManager, IdComponent, IdTCPConnection, IdTCPClient;

Нужно ли еще что-нибудь указывать?
Моя программулина:
Код

unit PExp_U;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, IdHttp, StdCtrls, ComCtrls, ActiveX, MsHtml, IdBaseComponent,
  IdCookieManager, IdComponent, IdTCPConnection, IdTCPClient;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Label1: TLabel;
    RichEdit1: TRichEdit;
    IdCookieManager1: TIdCookieManager;
    IdHTTP1: TIdHTTP;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure WB_LoadHTML(WebBrowser: TWebBrowser; HTMLCode: string);
var
sl: TStringList;
ms: TMemoryStream;
begin
WebBrowser.Navigate('about:blank');
while WebBrowser.ReadyState < READYSTATE_INTERACTIVE do
Application.ProcessMessages;
if Assigned(WebBrowser.Document) then begin
sl := TStringList.Create;
try
ms := TMemoryStream.Create;
try
sl.Text := HTMLCode;
sl.SaveToStream(ms);
ms.Seek(0, 0);
(WebBrowser.Document as IPersistStreamInit).Load(TStreamAdapter.Create(ms));
finally
ms.Free;
end;
finally
sl.Free;
end;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var HTTP: TIdHttp;
    Web: TWebbrowser;
    Data: TIdMultiPartFormDataStream;
begin
 Data:=TIdMultiPartFormDataStream.Create;
 try
  Data.AddFormField('form_sent','1');
  Data.AddFormField('redirect_url','index.php'); //  êóäà ðåäèðåêòèò ïîñëå âõîäà
  Data.AddFormField('username','VasyaPupkin'); // ïîëå ââîäà ëîãèíà
  Data.AddFormField('password','12345678');   // ïîëå ââîäà ïàðîëÿ
  WB_LoadHTML(Web, HTTP.Post('http://forum.ìàõ.ru/login.php?action=in',Data));
 finally
  Data.Free;
end;
end;
end.

Выдает ошибки:
[Error] PExp_U.pas(31): Undeclared identifier: 'TWebBrowser'
[Error] PExp_U.pas(36): Missing operator or semicolon
[Error] PExp_U.pas(37): 'DO' expected but identifier 'ReadyState' found
[Error] PExp_U.pas(39): ')' expected but identifier 'Document' found
[Error] PExp_U.pas(47): ')' expected but identifier 'Document' found
[Error] PExp_U.pas(47): Operator not applicable to this operand type
[Error] PExp_U.pas(50): EXCEPT or FINALLY expected
[Error] PExp_U.pas(51): 'END' expected but 'FINALLY' found
[Error] PExp_U.pas(54): '.' expected but ';' found
[Warning] PExp_U.pas(55): Text after final 'END.' - ignored by compiler
[Error] PExp_U.pas(17): Unsatisfied forward or external declaration: 'TForm1.Button1Click'
[Fatal Error] PExp.dpr(5): Could not compile used unit PExp_U.pas'

Это сообщение отредактировал(а) Vladimir_K - 18.12.2007, 21:39
--------------------
Судя по всему, у меня огромное количество мозгов - мне требуется уйма времени, чтобы ими пораскинуть
PM MAIL ICQ   Вверх
aktuba
Дата 18.12.2007, 21:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Смышленный
***


Профиль
Группа: Завсегдатай
Сообщений: 1915
Регистрация: 24.4.2006
Где: Планета Земля

Репутация: 9
Всего: 38



А зачем тебе тут WebBrowser???
Код

procedure TForm1.Button1Click(Sender: TObject);
var lData: TStringList;
begin
  lData := TStringList.Create;
  try
    lData.Add('login=user');
    lData.Add('pass=vasya');
    IdHTTP.Post('http://url/login.php', lData);
    ShowMessage(IdHTTP.Get('http://url'));
  finally
    lData.Free;
  end;
end;


Это сообщение отредактировал(а) aktuba - 18.12.2007, 21:49


--------------------
user posted image
PM MAIL WWW Skype   Вверх
Vladimir_K
Дата 18.12.2007, 22:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 2.12.2006

Репутация: нет
Всего: 1



Цитата(aktuba @ 18.12.2007,  20:48)
А зачем тебе тут WebBrowser???

Интересный вопрос. Так посоветовали...

Сейчас буду пробовать твой код.

Это сообщение отредактировал(а) Vladimir_K - 18.12.2007, 22:32
--------------------
Судя по всему, у меня огромное количество мозгов - мне требуется уйма времени, чтобы ими пораскинуть
PM MAIL ICQ   Вверх
aktuba
Дата 18.12.2007, 22:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Смышленный
***


Профиль
Группа: Завсегдатай
Сообщений: 1915
Регистрация: 24.4.2006
Где: Планета Земля

Репутация: 9
Всего: 38



Цитата(Vladimir_K @  18.12.2007,  23:05 Найти цитируемый пост)
Использовал твой код, ошибки:

Undeclared identifier: 'Post'
Undeclared identifier: 'Get'

Покажи свой код...


--------------------
user posted image
PM MAIL WWW Skype   Вверх
Vladimir_K
Дата 18.12.2007, 22:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 2.12.2006

Репутация: нет
Всего: 1



Ошибки исправил - обычная невнимательность...
Но вот этот код не работает.

Код

unit PExp_U;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, IdHttp, StdCtrls, ComCtrls, ActiveX, MsHtml, IdBaseComponent,
  IdCookieManager, IdComponent, IdTCPConnection, IdTCPClient;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Label1: TLabel;
    RichEdit1: TRichEdit;
    IdCookieManager1: TIdCookieManager;
    IdHTTP1: TIdHTTP;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var lData: TStringList;
    IdHTTP: TIdHttp;
    HTTP: TIdHttp;
    s: string;
    i:integer;

begin
  lData := TStringList.Create;
  try
    lData.Add('login=llll');
    lData.Add('pass=llll');
    IdHTTP.Post('http://www.url', lData);
    ShowMessage(IdHTTP.Get('http://www.url'));
  finally
    lData.Free;
  end;

  RichEdit1.Clear;
  http:=TIdHTTP.Create(nil);
  try
    s:=http.Get('http://www.url');
  except
    ShowMessage('Íåò êîííåêòà ñ ñåðâåðîì');
    Exit;
  end;
  RichEdit1.Lines.Add(s);
  http.Free;

// Ищу словосочетание Your Data на странице - если вход осуществлен, эти слова найдутся.

if s<>'' then
 begin
 i:=Pos(AnsiLowerCase('Your Data'),AnsiLowerCase(s));
  if i<=0 then
   begin
    Label1.Caption:='Íåò...';
    exit;
   end
   else
   begin
    Label1.Caption:='Åñòü!';
    exit;
   end;
end;
end;
end.


Добавлено через 7 минут и 24 секунды
Слова login и pass - это должны быть те слова, которые там на странице, или нет?
Если на странице: User name: и Password: - эти слова вводить в код программы?

Это сообщение отредактировал(а) Vladimir_K - 18.12.2007, 22:55
--------------------
Судя по всему, у меня огромное количество мозгов - мне требуется уйма времени, чтобы ими пораскинуть
PM MAIL ICQ   Вверх
aktuba
Дата 18.12.2007, 23:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Смышленный
***


Профиль
Группа: Завсегдатай
Сообщений: 1915
Регистрация: 24.4.2006
Где: Планета Земля

Репутация: 9
Всего: 38



Цитата(Vladimir_K @  18.12.2007,  23:52 Найти цитируемый пост)
Если на странице: User name: и Password: - эти слова вводить в код программы?

Нет. Названия полей надо.

Это сообщение отредактировал(а) aktuba - 18.12.2007, 23:32


--------------------
user posted image
PM MAIL WWW Skype   Вверх
Vladimir_K
Дата 18.12.2007, 23:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 2.12.2006

Репутация: нет
Всего: 1



Вот кусок кода страницы для ввода логина-пароля:

<td><b>User name:</b></td>
<td><input type=text name=username></td>
</tr>
<tr> 
<td><b>Password:</b></td>
<td><input type=password name=password></td>

Какие слова вводить в прогу?
--------------------
Судя по всему, у меня огромное количество мозгов - мне требуется уйма времени, чтобы ими пораскинуть
PM MAIL ICQ   Вверх
aktuba
Дата 19.12.2007, 00:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Смышленный
***


Профиль
Группа: Завсегдатай
Сообщений: 1915
Регистрация: 24.4.2006
Где: Планета Земля

Репутация: 9
Всего: 38



username и password


--------------------
user posted image
PM MAIL WWW Skype   Вверх
Vladimir_K
Дата 19.12.2007, 08:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 2.12.2006

Репутация: нет
Всего: 1



Возникает ошибка во время выполнения проги, когда жму кнопку Button1.

Access violation at address 00474CB2 in module 'PExp.exe'. Read of address 00000008.
вот в этой строке: IdHTTP.Post('http://www.url.net/pages/qw.php?pid=1', lData);

В проге я везде ввел адрес страницы, куда мне конкретно нужно зайти.

Это сообщение отредактировал(а) Vladimir_K - 19.12.2007, 08:34
--------------------
Судя по всему, у меня огромное количество мозгов - мне требуется уйма времени, чтобы ими пораскинуть
PM MAIL ICQ   Вверх
elementos
Дата 19.12.2007, 10:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 10.12.2007

Репутация: нет
Всего: нет



Цитата(Vladimir_K @  19.12.2007,  08:18 Найти цитируемый пост)
вот в этой строке: IdHTTP.Post('http://www.url.net/pages/qw.php?pid=1', lData);

и где там форма входа? 

PM MAIL   Вверх
Vladimir_K
Дата 19.12.2007, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 2.12.2006

Репутация: нет
Всего: 1



Ха, а ведь действительно такая страница есть: http://www.url.net/pages/qw.php?pid=1
Я же просто вместо адреса вставил "url"  smile 

Вот точный: http://www.payingcash.net/pages/ptpstats.php?pid=1
Если это так уж необходимо.

Добавлено через 4 минуты и 19 секунд
Я ICQ указал, может кто захочет воспользоваться... Так удобнее. А конечный результат (?) уже выложить здесь?
--------------------
Судя по всему, у меня огромное количество мозгов - мне требуется уйма времени, чтобы ими пораскинуть
PM MAIL ICQ   Вверх
elementos
Дата 19.12.2007, 14:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 10.12.2007

Репутация: нет
Всего: нет



мои глаза от красного цвета лопнут smile 
не могу там зарегестрироваться, дайте мне в личку како-нить действующий аккаунт с паролем, чтобы потестить
PM MAIL   Вверх
Vladimir_K
Дата 19.12.2007, 18:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 2.12.2006

Репутация: нет
Всего: 1



Извини, чего не могу - того не могу... У меня там денюжка лежит.

К тому же там регистрация с хитростями.

Это сообщение отредактировал(а) Vladimir_K - 19.12.2007, 19:29
--------------------
Судя по всему, у меня огромное количество мозгов - мне требуется уйма времени, чтобы ими пораскинуть
PM MAIL ICQ   Вверх
Vladimir_K
Дата 19.12.2007, 19:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 2.12.2006

Репутация: нет
Всего: 1



Ну а если сделать вход в почтовый ящик Яндекса?
Используется тот же принцип?

Код

unit PExp_U;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, IdHttp, StdCtrls, ComCtrls, ActiveX, MsHtml, IdBaseComponent,
  IdCookieManager, IdComponent, IdTCPConnection, IdTCPClient;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Label1: TLabel;
    RichEdit1: TRichEdit;
    IdCookieManager1: TIdCookieManager;
    IdHTTP1: TIdHTTP;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var lData: TStringList;
    IdHTTP: TIdHttp;
    HTTP: TIdHttp;
    s: string;
    i:integer;

begin
  lData := TStringList.Create;
  try
    lData.Add('username=логин');
    lData.Add('password=пароль');
    IdHTTP.Post('http://www.yandex.ru/', lData);
    ShowMessage(IdHTTP.Get('http://www.yandex.ru/'));
  finally
    lData.Free;
  end;


  RichEdit1.Clear;
  http:=TIdHTTP.Create(nil);
  try
    s:=http.Get('http://www.yandex.ru/');
  except
    ShowMessage('No connect with server.');
    Exit;
  end;
  RichEdit1.Lines.Add(s);
  http.Free;

// Поиск слова Входящие на странице - если вход осуществлен, это слово найдется.

if s<>'' then
 begin
 i:=Pos(AnsiLowerCase('Входящие'),AnsiLowerCase(s));
  if i<=0 then
   begin
    Label1.Caption:='No';
    exit;
   end
   else
   begin
    Label1.Caption:='Yes';
    exit;
   end;
end;
end;
end.

--------------------
Судя по всему, у меня огромное количество мозгов - мне требуется уйма времени, чтобы ими пораскинуть
PM MAIL ICQ   Вверх
Vladimir_K
Дата 19.12.2007, 21:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 2.12.2006

Репутация: нет
Всего: 1



Ой, не могу удержаться, чтоб не софтопить:

Страфиствюуйтэ! Я узьбекский вирюс. Па причин ужасный бэдность моей создателя и низкий уровин развитиё технология наша страна я не способин причинять какая-либа уред Ваш компютыр. Патаму очина прашю Уас, пажальста, сами сатрите какая-нибут важная для Уас файл, а патом разашлиты миня па почта другой адриса. Зарания благадарин за паниманий и сатрудничий.
 smile  smile  smile 
--------------------
Судя по всему, у меня огромное количество мозгов - мне требуется уйма времени, чтобы ими пораскинуть
PM MAIL ICQ   Вверх
aktuba
Дата 19.12.2007, 23:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Смышленный
***


Профиль
Группа: Завсегдатай
Сообщений: 1915
Регистрация: 24.4.2006
Где: Планета Земля

Репутация: 9
Всего: 38



Цитата(Vladimir_K @ 19.12.2007,  20:26)
Ну а если сделать вход в почтовый ящик Яндекса?
Используется тот же принцип?

Код

unit PExp_U;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, IdHttp, StdCtrls, ComCtrls, ActiveX, MsHtml, IdBaseComponent,
  IdCookieManager, IdComponent, IdTCPConnection, IdTCPClient;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Label1: TLabel;
    RichEdit1: TRichEdit;
    IdCookieManager1: TIdCookieManager;
    IdHTTP1: TIdHTTP;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var lData: TStringList;
    IdHTTP: TIdHttp;
    HTTP: TIdHttp;
    s: string;
    i:integer;

begin
  lData := TStringList.Create;
  try
    lData.Add('username=логин');
    lData.Add('password=пароль');
    IdHTTP.Post('http://www.yandex.ru/', lData);
    ShowMessage(IdHTTP.Get('http://www.yandex.ru/'));
  finally
    lData.Free;
  end;


  RichEdit1.Clear;
  http:=TIdHTTP.Create(nil);
  try
    s:=http.Get('http://www.yandex.ru/');
  except
    ShowMessage('No connect with server.');
    Exit;
  end;
  RichEdit1.Lines.Add(s);
  http.Free;

// Поиск слова Входящие на странице - если вход осуществлен, это слово найдется.

if s<>'' then
 begin
 i:=Pos(AnsiLowerCase('Входящие'),AnsiLowerCase(s));
  if i<=0 then
   begin
    Label1.Caption:='No';
    exit;
   end
   else
   begin
    Label1.Caption:='Yes';
    exit;
   end;
end;
end;
end.

Почти. Только поля иначе называются + надо один дополнительный запрос делать...


--------------------
user posted image
PM MAIL WWW Skype   Вверх
Vladimir_K
Дата 20.12.2007, 08:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 2.12.2006

Репутация: нет
Всего: 1



Вот эта часть:
Код

  lData := TStringList.Create;
  try
    lData.Add('username=s12x');
    lData.Add('password=12345');
    IdHTTP.Post('http://www.yandex.ru/', lData);
    ShowMessage(IdHTTP.Get('http://www.yandex.ru/'));
  finally
    lData.Free;
  end;

Логин и пароль от реального почтового ящика!
Этот код вводит пароль на странице, и типа нажимает кнопку "Войти"? И тогда уже можно на следующей открывшейся странице искать определенные слова и т.д.?
У меня вот в этой части во время выполнения проги возникает ошибка. Я ее приводил выше.
Правильно ли составлена эта часть кода?
--------------------
Судя по всему, у меня огромное количество мозгов - мне требуется уйма времени, чтобы ими пораскинуть
PM MAIL ICQ   Вверх
elementos
Дата 20.12.2007, 10:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 10.12.2007

Репутация: нет
Всего: нет



Vladimir_K,  
мне не нужен ваш акк с денгами, мне нужен любой работающий (без денег). 
впрочем, если для вас это такие сложности - решайте свои проблемы самостоятельно.
PM MAIL   Вверх
Vladimir_K
Дата 20.12.2007, 19:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 2.12.2006

Репутация: нет
Всего: 1



Сложности...

Вот: http://www.angelsads.com/pages/enter.php
логин: w123
пароль: 12345

Это сообщение отредактировал(а) Vladimir_K - 20.12.2007, 20:11
--------------------
Судя по всему, у меня огромное количество мозгов - мне требуется уйма времени, чтобы ими пораскинуть
PM MAIL ICQ   Вверх
Artem91
Дата 13.1.2008, 18:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 57
Регистрация: 13.7.2007

Репутация: нет
Всего: нет



А как сделать, чтобы при загрузке страницы, используя idHTTP, прога не подвисала? Processmessages не помогает!!!
PM MAIL   Вверх
remax
Дата 13.1.2008, 18:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доцент
**


Профиль
Группа: Участник Клуба
Сообщений: 686
Регистрация: 7.4.2002
Где: Украина, Харьков

Репутация: нет
Всего: 5



Используй инди антифриз (TIdAntiFreeze)



--------------------
Как бы ты не старался быть хорошим и правильным человеком с принципами и уважительным отношением к другим, всегда найдется кто-то, кто бросит в тебя какашку
PM MAIL ICQ Skype   Вверх
VICTAR
Дата 13.1.2008, 18:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1108
Регистрация: 6.10.2006

Репутация: 3
Всего: 80



Запихни idHTTP в поток. Или используй другие компоненты (например SwinHTTP)
PM MAIL   Вверх
mr_smit
Дата 9.3.2008, 13:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 254
Регистрация: 27.2.2008
Где: Самара

Репутация: 3
Всего: 4



Цитата(Vladimir_K @ 20.12.2007,  08:24)
Вот эта часть:
Код

  lData := TStringList.Create;
  try
    lData.Add('username=s12x');
    lData.Add('password=12345');
    IdHTTP.Post('http://www.yandex.ru/', lData);
    ShowMessage(IdHTTP.Get('http://www.yandex.ru/'));
  finally
    lData.Free;
  end;

Логин и пароль от реального почтового ящика!
Этот код вводит пароль на странице, и типа нажимает кнопку "Войти"? И тогда уже можно на следующей открывшейся странице искать определенные слова и т.д.?
У меня вот в этой части во время выполнения проги возникает ошибка. Я ее приводил выше.
Правильно ли составлена эта часть кода?


Я пробую по простому вот так и всё равно не заходит:
Код

procedure TForm1.Button1Click(Sender: TObject);
var
  d: TStringList;
  s: String;
begin
  d := TStringList.Create;
  d.Add('login=мой логин');
  d.Add('passwd=мой пасс');
try
  s := IdHTTP1.Post('http://passport.yandex.ru/passport?mode=auth',d);
finally
  d.Free;
end;
end;


user posted image

что ему ещё нужно?

Вот код со страницы яндекса:

Код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
    <title>Untitled</title>
</head>

<body>
<form action="http://passport.yandex.ru/passport?mode=auth" method="post" name="MainLogin" id="loginform">
<img src="http://img.yandex.net/wmi/modern/static/4/i//login/heading.gif" alt="Почта" width="136" height="36" style="margin: 15px 0 10px 0;">
<div class="input login"><label for="inputLogin">логин:</label><br><input type="text" name="login" id="inputLogin" tabindex="1"></div>
<div class="input passwd"><label for="inputPassword">пароль:</label><br><input type="password" name="passwd" id="inputPassword" tabindex="2"></div>
<p style="text-align: center;"><label for="twoweeks"><input type="checkbox" id="twoweeks" name="twoweeks" value="yes" autocomplete="no" tabindex="3" style="vertical-align: middle;"> запомнить меня</label></p>
<div><input type="hidden" name="retpath" value="http://mail.yandex.ru/?from=mail..........."><input type="submit" value="Войти" class="hugeBtn" tabindex="4"></div>
</form>
</body>
</html>


Это сообщение отредактировал(а) mr_smit - 9.3.2008, 13:24
PM MAIL   Вверх
dumb
Дата 9.3.2008, 18:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: 5
Всего: 158



Цитата(mr_smit @  9.3.2008,  13:18 Найти цитируемый пост)
что ему ещё нужно?

Код
IdHTTP1.HandleRedirects := true;

PM MAIL   Вверх
aktuba
Дата 11.3.2008, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Смышленный
***


Профиль
Группа: Завсегдатай
Сообщений: 1915
Регистрация: 24.4.2006
Где: Планета Земля

Репутация: 9
Всего: 38



Цитата(mr_smit @  9.3.2008,  14:18 Найти цитируемый пост)
что ему ещё нужно?

Ему нужно не много - чтобы ты хоть краем глаза посмотрел в спецификацию http...


--------------------
user posted image
PM MAIL WWW Skype   Вверх
XerSon
Дата 17.3.2008, 22:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 17.3.2008

Репутация: нет
Всего: нет



smile Все решил) 

Это сообщение отредактировал(а) XerSon - 28.3.2008, 15:42
PM MAIL   Вверх
Страницы: (3) [Все] 1 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.1960 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.