4th
Сен

Как сделать парсинг цитат с башорга?

Posted by Chas under Delphi, Пост-обзор

TzX
Вот, набросал на скорую руку. Используется Indy.
На форме Memo, Button, IdHTTP

unit Unit1;

interface

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

type
TForm1 = class(TForm)
Memo1: TMemo;
Button1: TButton;
IdHTTP1: TIdHTTP;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
Function podstr(str, pod: string): integer;
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
s:string;
i:integer;
begin
s:=idhttp1.Get('http://bash.org.ru'); //Грузим код страницы
for i:=1 to podstr(s,'утверждена') do //Определяем количество цитат на странице
Begin
delete(S,1,pos('утверждена',s)); delete(S,1,pos('</div>',S)+5); //Удаляем мусор до нужной цитаты
memo1.Lines.Add(copy(S,pos('<div>',S)+5,pos('</div>',S)-pos('<div>',S)-5)); //Сам парсинг и вывод
memo1.Lines.Add('');
End;

end;

function TForm1.podstr(str, pod: string): integer; //Возваращает число вхождений подстроки в строку
var
i,ln:integer;
begin
i:=0;
ln:=length(pod);
while (pos(pod,str)>0) do
begin
inc(i);
delete(str,pos(pod,str),ln);
end;
result:=i;
end;

end.

Пост написан при поддержке информационного сайта – Предприятия, Товары, Услуги России : ALL.BIZ: Россия, бытовая техника в Российской Федерации и не только.

тема на форуме

Похожие статьи