PDA

Просмотр полной версии : [Delphi] Как научиться парсить? | Token :D


zZkamedosZz
17.04.2015, 12:59
Как парсить информацию с сайтов)
[Библа - Synapse]
*******************************
Что нам нужно?
1.Delphi, немного знаний и всё)
2.Сайт с которого будем парсить)
************************
Добавим в uses [Ссылки могут видеть только зарегистрированные и активированные пользователи]
Добавляем кнопку + sMemo на форму)
Вставляем функцию парса:

её нужно вставить ниже этой строчки)
implementation

{$R *.dfm}
*********************
function Pars(T_, ForS, _T: string): string;
var
a, b: integer;
begin
Result := '';
if (T_ = '') or (ForS = '') or (_T = '') then Exit;
a := Pos(T_, ForS);
if a = 0 then Exit
else a := a + Length(T_);

ForS := Copy(ForS, a, Length(ForS) - a + 1);
b := Pos(_T, ForS);
if b > 0 then Result := Copy(ForS, 1, b - 1);
end;
***********************

3.Кликаем на sButton [Button] 2 раза - смотря есть ли у вас альфа скин)
Должно открыться окошко.

procedure sButton1Click(Sender: TObject);
var
[Ссылки могут видеть только зарегистрированные и активированные пользователи] T[Ссылки могут видеть только зарегистрированные и активированные пользователи]
HTML : TStringList;
begin
[Ссылки могут видеть только зарегистрированные и активированные пользователи] T[Ссылки могут видеть только зарегистрированные и активированные пользователи]
HTML := TStringList.Create;
//Например взял | WarFrame :)
if [Ссылки могут видеть только зарегистрированные и активированные пользователи]('GET','[Ссылки могут видеть только зарегистрированные и активированные пользователи]') then
begin
HTML.LoadFromStream([Ссылки могут видеть только зарегистрированные и активированные пользователи]);
info :=Pars('"theme_token":"',Utf8ToAnsi(html.Text),'","'); // 'Откуда' и 'До куда'
sMemo1.Lines.Add(info);
end;

//Ещё нужно добавить в global var : info : string;
//Пишем такую кнопку как я напишу
end;

[Ссылки могут видеть только зарегистрированные и активированные пользователи] - что должно получиться.

unit Unit5;

interface

uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, sMemo, sButton, [Ссылки могут видеть только зарегистрированные и активированные пользователи] ssl_openssl;

type
TForm5 = class(TForm)
sButton1: TsButton;
sMemo1: TsMemo;
sButton2: TsButton;
procedure sButton1Click(Sender: TObject);
procedure sButton2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form5: TForm5;
info : string;

implementation

{$R *.dfm}

function Pars(T_, ForS, _T: string): string;
var
a, b: integer;
begin
Result := '';
if (T_ = '') or (ForS = '') or (_T = '') then Exit;
a := Pos(T_, ForS);
if a = 0 then Exit
else a := a + Length(T_);

ForS := Copy(ForS, a, Length(ForS) - a + 1);
b := Pos(_T, ForS);
if b > 0 then Result := Copy(ForS, 1, b - 1);
end;

procedure TForm5.sButton1Click(Sender: TObject);
var
[Ссылки могут видеть только зарегистрированные и активированные пользователи]
HTML:TStringList;
begin
[Ссылки могут видеть только зарегистрированные и активированные пользователи]
HTML:=TStringList.Create;


if [Ссылки могут видеть только зарегистрированные и активированные пользователи]('GET','[Ссылки могут видеть только зарегистрированные и активированные пользователи]') then
begin
HTML.LoadFromStream([Ссылки могут видеть только зарегистрированные и активированные пользователи]);
info :=Pars('"theme_token":"',Utf8ToAnsi(html.Text),'","'); // 'Откуда' и 'До куда'
sMemo1.Lines.Add(info);
end;
end;

procedure TForm5.sButton2Click(Sender: TObject);
begin
sMemo1.Clear;
end;

end.

DikanYa
28.05.2015, 02:43
'Главная | Warframe
я так понял, тут должна быть вставлена ссылка парсимуемой страницы?)

NebesaBag
28.05.2015, 19:58
DikanYa, не пользовался синапсом, но по логике да, там должна быть ссылка)