Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 06.11.2011, 17:32
scroyler scroyler вне форума
Активный
 
Регистрация: 01.08.2011
Адрес: ЧЕбоксары
Сообщения: 248
Версия Delphi: XE
Репутация: -615
По умолчанию Как скопировать текст с сайта в мемо

Здравствууйте подскажите плз,как спарсить (скопировать) текст с сайта в мемо.
Текст например E-mail с сайта vk.com
__________________
Ставь спасибо за спасибо!
Помог?Ставь спасибо!Увидел пост? Поставь спасибо!
Ответить с цитированием
  #2  
Старый 06.11.2011, 19:10
ChinYan ChinYan вне форума
Тыкаю клавиши
 
Регистрация: 13.07.2009
Сообщения: 804
Версия Delphi:
Репутация: 48633
По умолчанию

Первое что приходит в голову - регулярные выражения, но я тут не помощник - не силен в них.

Второе - посмотреть исходник страницы и найти теги, которые до нужного текста и после (теги или группа тегов должны быть уникальна) и потом вынуть подстроку.
Ответить с цитированием
  #3  
Старый 06.11.2011, 19:16
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Ему, похоже, надо из области ввода дернуть, при заполнении.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #4  
Старый 06.11.2011, 19:19
scroyler scroyler вне форума
Активный
 
Регистрация: 01.08.2011
Адрес: ЧЕбоксары
Сообщения: 248
Версия Delphi: XE
Репутация: -615
По умолчанию

Проблема то в том , что я не знаю как это сделать,мне нужно сделать так например если в html коде страницы есть надпись выход то написать в мемо типо вы не на сайте, а если нету выход, то писало в мемо что то типо вы вошли ну или что то типо токого.
Заранее спасибо...
__________________
Ставь спасибо за спасибо!
Помог?Ставь спасибо!Увидел пост? Поставь спасибо!
Ответить с цитированием
  #5  
Старый 06.11.2011, 19:49
Аватар для GriLab
GriLab GriLab вне форума
Начинающий
 
Регистрация: 26.11.2010
Адрес: Минск
Сообщения: 190
Версия Delphi: XE 15.0.3890
Репутация: 415
По умолчанию

Если тебе надо авторизоваться на сайте и выполнять какие-то действия, то смотри документацию В Контакте здесь. Если ты хочешь парсить страницы, то использую IdHTTP.Get (вкладка Indy Clients). Эта функция возвращает исходный код страницы либо результат запроса.
Ответить с цитированием
  #6  
Старый 06.11.2011, 20:18
scroyler scroyler вне форума
Активный
 
Регистрация: 01.08.2011
Адрес: ЧЕбоксары
Сообщения: 248
Версия Delphi: XE
Репутация: -615
По умолчанию

это не то,просто напишите код плз как с сайта какую нибуть надпись перенести в мемо или edit
__________________
Ставь спасибо за спасибо!
Помог?Ставь спасибо!Увидел пост? Поставь спасибо!
Ответить с цитированием
  #7  
Старый 06.11.2011, 23:59
U.B.M. U.B.M. вне форума
Новичок
 
Регистрация: 06.10.2011
Сообщения: 94
Версия Delphi: Delphi 7
Репутация: 13
По умолчанию

Цитата:
Сообщение от scroyler
...например, если в html коде страницы есть надпись...

Как говорилось в старом добром фильме "Дорогой, тебе исключительно повезло. Я тебе помогу"

Вот так выцепить хтмл-код (сделал буквально вчера - для аналогичных нужд)

Код:
unit Unit1;

interface

uses
  SysUtils, Classes, Controls, Forms, StdCtrls, IdBaseComponent, IdComponent,
  IdTCPConnection, IdTCPClient, IdHTTP, StrUtils;

type
  TForm1 = class(TForm)
    IdHTTP1: TIdHTTP;
    Button1: TButton;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  _addr : string;
  _text : AnsiString;
begin
  _addr := 'http://www.ruslo.net/index.php/list/19-vse-suschestvitel-nye-russkogo-yazyka/1.xhtml'; // адрес сайта
  _text:= UTF8ToAnsi(IdHTTP1.Get(_addr)); // этот сайт в кодировке UTF8, поэтому пишем перевод в анси, что характерно
  memo1.text := memo1.text + _text;
end;

end.

Вот так вот.

Последний раз редактировалось U.B.M., 07.11.2011 в 00:04.
Ответить с цитированием
  #8  
Старый 07.11.2011, 01:21
m1sclick m1sclick вне форума
Начинающий
 
Регистрация: 04.07.2011
Адрес: Украина
Сообщения: 186
Версия Delphi: 2010
Репутация: 2094
По умолчанию

На дух не переношу idHTTP по этому Synapse.
На примере vk.com
PHP код:
unit Unit1;

interface

uses
  Windows
MessagesSysUtilsVariantsClassesGraphicsControlsForms,
  
DialogsHTTPSendStdCtrls;

type
  TForm1 
= class(TForm)
    
Button1TButton;
    
Memo1TMemo;
    
procedure Button1Click(SenderTObject);
  private
    { Private 
declarations }
  public
    { Public 
declarations }
  
end;

var
  
Form1TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(SenderTObject);
var
 
HTTPSendTHTTPSend;
 
streamTStringStream;
begin
 HTTPSend
:= THTTPSend.Create;
 
HTTPSend.HTTPMethod('get''vk.com');
 
stream:= TStringStream.Create;
 
HTTPSend.Document.SaveToStream(stream);
 
Memo1.Lines.Add(copy(stream.DataStringpos('E-mail'stream.DataString), 17));
 
HTTPSend.Clear;
 
stream.Clear;
end;

end
Ответить с цитированием
  #9  
Старый 07.11.2011, 10:11
Аватар для ~TB~
~TB~ ~TB~ вне форума
Начинающий
 
Регистрация: 17.02.2006
Адрес: Казахстан
Сообщения: 172
Версия Delphi: XE
Репутация: 1500
По умолчанию

Код:
...
HTTPSend.Clear; 
stream.Clear;
...

А освобождать ресурсы не нужно или это все входит в метод Clear?
__________________
00110001 00101100 00110110 00110001 00111000 00110000 00110011 00110011 00111001 00111000 00111000 00110111 00110100 00111001 00111000 00111001 00110100 00111000 00110100 00111000 00110010 00110000 00110100 00110101 00111000 00110110 00111000 00110011 00110100 00110011 00110110 00110101 00110110
Ответить с цитированием
  #10  
Старый 07.11.2011, 17:59
scroyler scroyler вне форума
Активный
 
Регистрация: 01.08.2011
Адрес: ЧЕбоксары
Сообщения: 248
Версия Delphi: XE
Репутация: -615
По умолчанию

Цитата:
Сообщение от m1sclick
На дух не переношу idHTTP по этому Synapse.
На примере vk.com
PHP код:
unit Unit1;

interface

uses
  Windows
MessagesSysUtilsVariantsClassesGraphicsControlsForms,
  
DialogsHTTPSendStdCtrls;

type
  TForm1 
= class(TForm)
    
Button1TButton;
    
Memo1TMemo;
    
procedure Button1Click(SenderTObject);
  private
    { Private 
declarations }
  public
    { Public 
declarations }
  
end;

var
  
Form1TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(SenderTObject);
var
 
HTTPSendTHTTPSend;
 
streamTStringStream;
begin
 HTTPSend
:= THTTPSend.Create;
 
HTTPSend.HTTPMethod('get''vk.com');
 
stream:= TStringStream.Create;
 
HTTPSend.Document.SaveToStream(stream);
 
Memo1.Lines.Add(copy(stream.DataStringpos('E-mail'stream.DataString), 17));
 
HTTPSend.Clear;
 
stream.Clear;
end;

end


спасибо,но ошибку выдает в каждой строке(
HTTPSend, StdCtrls в юсес добавлял.
__________________
Ставь спасибо за спасибо!
Помог?Ставь спасибо!Увидел пост? Поставь спасибо!
Ответить с цитированием
  #11  
Старый 26.11.2011, 17:57
m1sclick m1sclick вне форума
Начинающий
 
Регистрация: 04.07.2011
Адрес: Украина
Сообщения: 186
Версия Delphi: 2010
Репутация: 2094
По умолчанию

Цитата:
Сообщение от scroyler
спасибо,но ошибку выдает в каждой строке(
HTTPSend, StdCtrls в юсес добавлял.
А сам Synapse ты в Delphi ставил? Или просто дописал и пусть матушка природа сама думает что это за буковки такие. Код что я дал 100% рабочий.
Цитата:
Сообщение от ~TB~
А освобождать ресурсы не нужно или это все входит в метод Clear?
Если тебе от этого станет легче можешь освободить.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 03:43.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter