sinnaelgen Skrevet 24. juli 2006 Del Skrevet 24. juli 2006 (endret) jeg kunne teke meg å lage et program som forlsår når jeg skal se de forskelige tvprgrammen for å få meg mest mulig av dem. for å slippe å taste inn all informasjonen manuelt så kunne jeg tenke meg en metode for å hente det fra intenet. er det noen som ser hvordan man kan gjøre det ? . programmet skal selfølgelig komme med forslag etter mine kreterier. filmer og tv-programer skal merkes med merke laper som action,sci-fi, dra osv. i danne databsen som programet styre skal mest mulig om tvpgramenet som har med sende tiden lagres. hvilket format bruker tvgudene på internet ? Endret 27. juli 2006 av elg-elg123 Lenke til kommentar
tasle Skrevet 27. juli 2006 Del Skrevet 27. juli 2006 På alle Internettsider brukes HTML som må parses i ditt program. Se for eksempel TV-guiden på SOL eller lignende (View Source). Andre bruker linker, eksempelvis VG.no. Lenke til kommentar
sinnaelgen Skrevet 27. juli 2006 Forfatter Del Skrevet 27. juli 2006 (endret) Da gjelder det å finne ut av hvordan oversikten er bygd opp. rekefølgen av de forskjelige oplysningen : programts navn , orginal tittel, sendetid : dato , start , slut eller lengde og hvor mange merkelapper prgramet har ( f.eks aktion film) om det har blit sendt før hvi det er merket som reprise. jeg siter å venter på at jeg skal få meg bredband. tror ikke jeg bruker så mye tid på min "tvgude" før bredbanet er på plass . problemt blir antagelig å konvertere html koden til ren tekst eller et annet format som passer bedre til mit bruk. Foresten . jeg vet ikke helt hvordan jeg få til å hente oplysningen fra de rette sidene hvis jeg bruker en knapp i delphi som opdaterer databasen. Det er progrmsnuten jeg er usikker på. Endret 27. juli 2006 av elg-elg123 Lenke til kommentar
tasle Skrevet 27. juli 2006 Del Skrevet 27. juli 2006 (endret) Det du må gjøre er å sile ut taggene i HTMLkoden, slik at teksten blir igjen. Eks.: <B>Dette er en fet tekst</B> 1) Fjern den første taggen: Delete (Tagtekst, 1, 3); 2) Fjern den siste taggen: Delete (Tagtekst, Pos ('<', Tagtekst), Length (Tagtekst)); Tilbake står du med teksten: Dette er en fet tekst Slik må du gjøre med alle typer tagger som finner i den gitte HTML-teksten i TV-guiden. Deretter leter programmet etter spesielle clues som angir klokkeslett og programtittel osv. For å laste ned en HTML-side fra nettet bør du bruke Indy's HTTP-klient (komponent), eksempelvis. Endret 27. juli 2006 av tasle Lenke til kommentar
sinnaelgen Skrevet 28. juli 2006 Forfatter Del Skrevet 28. juli 2006 sile ut html kode skulle gå grei så fremt jeg kalrer å lere meg dem . er det mange koder ? kansje dere vet om en oversikt på nettet. er indy's HTTP-klient gratis ? hvis nei finnes det en komponet som er gratis ? I delphi 5 var det gankelt å byfgge opp en database hved hjelp av tabeller men tabellen forsvant i delphi 6 ( tror jeg ) . de er i hvertfal ikke der i versjon 7. pe. er det noen som er gode på Ddclient... og Ddeserver... jeg er så tilig i planleggingen at jeg ikke har bestemt meg helt hvordan jeg vil bygge opp "tabellene" og samenhengen mellom dem Lenke til kommentar
tasle Skrevet 29. juli 2006 Del Skrevet 29. juli 2006 Det er en hel drøss av forskjellige tags. http://werbach.com/barebones/no/barebones_no.html er en grei overikt over taggene. Men du slipper nok å implementere alle disse, for det er langt fra alle websider som bruker samtlige tags, heldigvis. Indy er et gratis sett komponenter som dekker det meste av Internett-relaterte oppgaver, enten det er servere eller på klientsiden. De kan lastes gratis ned fra http://www.indyproject.org/ og installeres i Delphi. Databaser i Delphi gjelder nok kun i versjonene Professional og oppover. Men du finner sikkert en eller flere gratis databasekomponenter på nettet, som kan brukes/installeres. Også for mySQL, bl.a. Når du skal lage et databaseprogram, så får du relasjonen "en TV-kanal har mange programmer" (en-til-mange relasjon), så det burde gå veldig greit. Du trenger bare to tabeller: en tabell for TV-kanalene, og den andre for alle programmene. Lenke til kommentar
sinnaelgen Skrevet 30. juli 2006 Forfatter Del Skrevet 30. juli 2006 (endret) takk for helpen så langt. det blir nok enda en stund før jeg begynner med "tvguden" min. jeg blir nødt til å teste ut en elle anen database først . ----------------------------------------------------------------------------------- nå har jeg lastet ned gratisversjonen av absolut database og prøvd å instalare den, men delphi versjoen mein finnerhvis ikke alle filene. I følge tekstfilen som følger med skal AD. instalres uten at delphi kjører . det fungert grei men nå delphi startes opp får jeg en feilmelding om noen filer programet ikke finner. man kunne også legge AD inn som en egen pakke. jeg prøvde det også men fortsat var det noen filer delphi ikke fant. Endret 4. august 2006 av elg-elg123 Lenke til kommentar
Format71 Skrevet 21. august 2006 Del Skrevet 21. august 2006 For deg, og alle andre, som skal rippe data fra diverse html-sider kan jeg kun anbefale en ting: Regular Expressions Følg tutorial på regular-expressions.info og last ned en prøveversjon på RegexBuddy fra RegexBuddy så er du i gang. Skill ut søkestrengene i en egen fil så blir det superenkelt å tilpasse programmet dersom sidene du ripper plutselig endrer struktur, eller du rett og slett ønsker å hente data fra en helt annen side en dag. -Vegar Lenke til kommentar
sinnaelgen Skrevet 21. august 2006 Forfatter Del Skrevet 21. august 2006 et filter program alså ? når jeg gidder må jeg finne ut hvordan jeg leser av en side fra netet for så kunne scanne gjenom teksten ( og kodene ) alt dette i delphi. Lenke til kommentar
tasle Skrevet 21. august 2006 Del Skrevet 21. august 2006 (endret) Det finnes en gratis HTML parser som er utmerket, f.eks. http://www.zeitungsjunge.de/delphi/htmlparser/ Endret 21. august 2006 av tasle Lenke til kommentar
Format71 Skrevet 22. august 2006 Del Skrevet 22. august 2006 et filter program alså ? Er ikke helt sikker på hva du legger i 'filter progam', men det er bare en alternativ fremgangsmåte til det andre her foreslår. Steg 1: Laste ned htmlside Steg 2: Plukke ut ønsket informasjon. Steg 1 vil være likt for begge fremgangsmåter. Steg 2 vil være forskjellig. Endten parser man siden vha en html-parser. Da hopper man fra html-tag til html-tag til man er der man vet det er info man er ute etter. Så plukker man med seg den teksten man vil ha før man hopper videre til neste tag osv osv. Eller man søker igjennom siden etter noe man vet er der vha regular expressions. Ta f.eks. dagbladet.no sin utskriftsvennlige tv-oversikt: http://fredag.dagbladet.no/tv/print.html Den inneholder dagens program for seks kanaler. Jeg ville da bruke regular expresions på følgende måte (saudokode...) const KanalRegex = '<div class="tv">.*?<img .*?title="(?P<Kanal>.*?)".*?>(?P<Programmer>.*?)</div>'; const ProgamRegex = '<b.*?>(?<tid>[.:\d]*?)</b>(?<tittel>[^<]*)'; regex.regex = KanalRegex; regex.subject = htmlbuffer; while regex.match do kanal = regex.NamesSubExpression("Kanal"); regex2.regex = ProgamRegex; regex2.subject = regex.NamedSubExpression("Programmer"); while regex2.match do klokka = regex.NamedSubExpression("tid"); progam = regex.NamedSubExpression("tittel"); end; end; Og bytter du ut de to søkeuttrykkene jeg har brukt med to andre kan du plutselig bruke tv-oversikten fra f.eks. vg i stede: const KanalRegex = '<img[^<>]*?title="(?P<Kanal>.*?)-.*?">.*?</table>(?P<Programmer>.*?)</table>'; const ProgamRegex = '<td[^>]*?>[\s]*?(?P<tid>[\d][\d]:[\d][\d]).*?<a[^>].*?>(?P<tittel>.*?)</a>'; Ser antakelig ganske kryptisk ut, men bruker du litt tid på regular expressions og laster ned TPerlRegEx fra regular-expressions.info vil du snart se at dette er en langt langt mer fleksibel metode enn bruk av en html-parser. -Vegar Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå