Skip to content

Instantly share code, notes, and snippets.

@zbyna
Last active September 1, 2021 17:51
Show Gist options
  • Save zbyna/03c24ae800ff740a25a3 to your computer and use it in GitHub Desktop.
Save zbyna/03c24ae800ff740a25a3 to your computer and use it in GitHub Desktop.
Internet tools - scarping thetvdb.com pomocí šablony
procedure TForm1.Button2Click(Sender: TObject);
var v: IXQValue;
i: Integer;
url,str: String;
pomString: String;
pomString2: String = ' ';
pomString3: String;
pomStr:String;
vPom: IXQValue;
p: IXQValue;
p3: IXQValue;
pomQuery: String;
pomVariableChangeLog: TXQVariableChangeLog;
begin
str:= '<html>'+' <?xml version="1.0" encoding="UTF-8" ?>'+ slineBreak +
'<Data>' + slineBreak +
'<Series>' + slineBreak +
'<seriesid>78901</seriesid>' + slineBreak +
'<language>en</language>' + slineBreak +
'<SeriesName>Supernatural</SeriesName>' + slineBreak +
'<banner>graphical/78901-g4.jpg</banner>' + slineBreak +
'<Overview>Dean and Sam Winchester are two brothers with a special talent. Well-versed...</Overview>' + slineBreak +
'<FirstAired>2005-09-13</FirstAired>' + slineBreak +
'<IMDB_ID>tt0460681</IMDB_ID>' + slineBreak +
'<zap2it_id>EP00754231</zap2it_id>' + slineBreak +
'<id>78901</id>' + slineBreak +
'</Series>' + slineBreak +
'<Series>' + slineBreak +
'<seriesid>79426</seriesid>' + slineBreak +
'<language>en</language>' + slineBreak +
'<SeriesName>Supernatural Science</SeriesName>' + slineBreak +
'<banner>graphical/z79426-g.jpg</banner>' + slineBreak +
'<Overview>Even hardheaded skeptics have to concede that there’s something inherently...</Overview>' + slineBreak +
'<FirstAired>2006-11-09</FirstAired>' + slineBreak +
'<zap2it_id>EP00359360</zap2it_id>' + slineBreak +
'<id>79426</id>' + slineBreak +
'</Series>' + slineBreak +
'<Series>' + slineBreak +
'<seriesid>154401</seriesid>' + slineBreak +
'<language>en</language>' + slineBreak +
'<SeriesName>5th Dimension - Secrets of the Supernatural</SeriesName>' + slineBreak +
'<banner>graphical/154401-g.jpg</banner>' + slineBreak +
'<Overview>Does life end in death? Or does the soul wander from body to body? Are there...</Overview>' + slineBreak +
'<id>154401</id>' + slineBreak +
'</Series>' + slineBreak +
'<Series>' + slineBreak +
'<seriesid>197001</seriesid>' + slineBreak +
'<language>en</language>' + slineBreak +
'<SeriesName>Supernatural the Animation</SeriesName>' + slineBreak +
'<banner>graphical/197001-g2.jpg</banner>' + slineBreak +
'<Overview>Supernatural the Animation will not only remake the best episodes from the ...</Overview>' + slineBreak +
'<FirstAired>2011-02-23</FirstAired>' + slineBreak +
'<IMDB_ID>tt1679482</IMDB_ID>' + slineBreak +
'<id>197001</id>' + slineBreak +
'</Series>' + slineBreak +
'<Series>' + slineBreak +
'<seriesid>79432</seriesid>' + slineBreak +
'<language>en</language>' + slineBreak +
'<SeriesName>Supernatural The Unseen Powers of Animals</SeriesName>' + slineBreak +
'<banner>graphical/z79432-g.jpg</banner>' + slineBreak +
'<Overview>When science fiction becomes science fact. This groundbreaking series unravels...</Overview>' + slineBreak +
'<FirstAired>1999-03-30</FirstAired>' + slineBreak +
'<id>79432</id>' + slineBreak +
'</Series>' + slineBreak +
'<Series>' + slineBreak +
'<seriesid>74143</seriesid>' + slineBreak +
'<language>en</language>' + slineBreak +
'<SeriesName>The Supernatural (1977)</SeriesName>' + slineBreak +
'<FirstAired>1977-06-01</FirstAired>' + slineBreak +
'<IMDB_ID>tt0396375</IMDB_ID>' + slineBreak +
'<id>74143</id>' + slineBreak +
'</Series>' + slineBreak +
'</Data>'+'</html>';
Memo2.Text:=str;
Memo1.Lines.Clear;
pomQuery:='<Data>' + slineBreak +
'<template:loop>' + slineBreak +
'<Series>' + slineBreak +
'<SeriesName>{nazev:=text()}</SeriesName>' + slineBreak +
'<FirstAired>{vysilano:=text()}</FirstAired>' + slineBreak +
'</Series>' + slineBreak +
'</template:loop>' + slineBreak +
'</Data>';
i:=0;
for v in process(str,pomQuery) do
begin
p:= v.getProperty('nazev'); // je to pvkObject
p3:=v.getProperty('vysilano');
// enumerátor rozpozná jednu položku a to object, pak se ukončí ... asi chyba, těžko říct
pomString:=p.toArray[3].toString;
pomString3:=p3.toArray[3].toString;
// pro přístup k datům je nutný další for cyklus
Memo1.Append((inttostr(i))+' '+(pomString) + ' :-) '+ pomString3);
i:=i+1;
end;
end;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment