Как парсить информацию с сайтов)
[Библа - Synapse]
*******************************
Что нам нужно?
1.Delphi, немного знаний и всё)
2.Сайт с которого будем парсить)
************************
Добавим в uses HTTPSend,ssl_openssl;
Добавляем кнопку + 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
HTTP: THTTPSend;
HTML : TStringList;
begin
HTTP:= THTTPSend.Create;
HTML := TStringList.Create;
//Например взял | WarFrame :)
if HTTP.HTTPMethod('GET','https://warframe.com/ru') then
begin
HTML.LoadFromStream(HTTP.Document);
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, httpsend, 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
HTTP:THTTPSend;
HTML:TStringList;
begin
HTTP:=THTTPSend.Create;
HTML:=TStringList.Create;
if HTTP.HTTPMethod('GET','https://warframe.com/ru') then
begin
HTML.LoadFromStream(HTTP.Document);
info :=Pars('"theme_token":"',Utf8ToAnsi(html.Text),'","'); // 'Откуда' и 'До куда'
sMemo1.Lines.Add(info);
end;
end;
procedure TForm5.sButton2Click(Sender: TObject);
begin
sMemo1.Clear;
end;
end.
________________
Не можешь жить, займись чем-нибудь другим.
Последний раз редактировалось VeTaL_UA; 08.06.2015 в 12:06.
DikanYa, не пользовался синапсом, но по логике да, там должна быть ссылка)
________________
[Ссылки могут видеть только зарегистрированные пользователи. ]
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). Пишу софт на заказ(Delphi / C# / PHP-скрипты). Описывайте задачи и цели софта, сообщайте сумму на которую рассчитываете.
Skype: vinozavr (Молдова)
Кто плюсует популярность, подписывайтесь пожалуйста)