Created
September 28, 2015 23:34
-
-
Save zbyna/356e45d730144340b308 to your computer and use it in GitHub Desktop.
Internet tools - scraping thetvdb.com pomocí šablony mix xpath a jsoniq
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
procedure TForm1.Button2Click(Sender: TObject); | |
var v,u : IXQValue; | |
i: Integer; | |
str: String; | |
pomString: String= ' '; | |
pomString3: String= ' '; | |
p: IXQValue; | |
p3: IXQValue; | |
p4: IXQValue ; | |
pomQuery: String; | |
x:TXQValueJSONArray; | |
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:=string(text())}</SeriesName>' + slineBreak + | |
'<FirstAired>{vysilano:=string(text())}</FirstAired>' + slineBreak + | |
'</Series>' + slineBreak + | |
'{radek:=[$nazev,$vysilano]}'+ sLineBreak + // musí být $ | |
'</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'); | |
p4:=v.getProperty('radek'); | |
for u in p do // tisk nazev | |
Memo1.Append(u.toString); | |
for u in p3 do // tisk vysilano | |
Memo1.Append(u.toString); | |
for u in p4 do // tisk radek | |
begin | |
x:= u as TXQValueJSONArray; | |
Memo1.Append(x.seq.get(0).toString +' '+x.seq.get(1).toString); | |
end; | |
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