[LØST] Hente ut kinoinformasjon

9 innlegg i emnet

Skrevet

Hei, jeg har laget en omtrent samme tråd om dette før, men denne ble stengt pga rettigheter fra Strom Weather Center.

Denne gangen ønsker jeg å hente ut data fra denne siden

Det jeg ønsker å ha ut er det som er inni den lange select boksen, som viser en oversikt over filmer som går.

Denne siden har gjort det samme.

:thumbup:

0

Del dette innlegget


Lenke til innlegg
Del på andre sider

Skrevet

I den siden du refererer til ser det ut til å være lagt inn i siden, altså ikke hentet ut fra en annen side.

ellers kan du bruke en iframe som peker til sida du vil hente data fra, men dette vil ikke fungere for besøkende som bruker internet explorer (hvilket for meg er argument godt nok til å bruke det :P :thumbs: )

EDIT: Dette burde du forøvrig ha sett selv, det er ikke spesielt vanskelig å finne frem html-koden

0

Del dette innlegget


Lenke til innlegg
Del på andre sider

Skrevet

Dersom du har støtte for PHP kan du benytte følgende lille kodesnutt på nettsiden din.. B)

<?php

// Henter inn informasjon fra siden

$handle = fopen("http://www.charlie.no/index.php", "rb");

$contents = '';

while (!feof($handle)) {

  $contents .= fread($handle, 8192);

}

fclose($handle);


// Leser den informasjonen vi ønsker ved hjelp av Regex

preg_match_all("/<option value=\"([0-9]{3})\">([a-z0-9æøåÆØÅ:()\"'.,\-_ ]*)<\/option>/i", $contents, $matches, PREG_PATTERN_ORDER);


// Legger id og tittel inn i tabell

$film['id'] = $matches[1];

$film['tittel'] = $matches[2];



// Her begynner formateringen av output! Gjør som du vil nedenfor dette punktet...

for ($i = 0; $i < sizeof($film['id']); $i++) {

	echo "<a href=\"http://www.charlie.no/filmer.php?Id=" . $film['id'][$i] . "\">" . $film['tittel'][$i] . "</a><br />";

}


?>

Her hentes både aktuelle og kommende filmer. Koden er vist av den hensikt å bidra til læring, og hva du måtte gjøre med den med tanke på rettigheter osv. må du stå inne for. Jeg ser det som etisk mest riktig å kontakte Filmsenteret og spørre om deres tillatelse til å hente ut de nyeste filmene (noe du sannsynligvis også vil få dersom du linker til informasjon på deres side slik jeg her har vist), fremfor å belaste dem med trafikk uten avklaring.

0

Del dette innlegget


Lenke til innlegg
Del på andre sider

Skrevet

Druber, har du mulighet til å endre litt på det? Jeg ser hvor i scriptet den ber om filmer som er nå, men ikke filmer som kommer?!

Kan du endre så dette blir separat, slik som dette:

Filmer som går

Da Vinci koden

Den brysomme mannen

Istid 2

Lange flate ballær

M:i:III (Mission: Impossible III)

Sannheten om Rødhette (norsk tale)

She's the Man

Slipp Jimmy fri

Tsotsi

X-Men: The Last Stand

Filmer som kommer

Lassie

16 Blocks

Fast and Furious - Tokyo Drift (3)

Poseidon

Date Movie

Asterix og vikingene

Pirates of the Caribbean - Dead Man's Chest

Pusur 2

Superman Returns

Nysgjerrige Nils

Trigger

0

Del dette innlegget


Lenke til innlegg
Del på andre sider

Skrevet

Bør vel bli noe slikt:

<?php

// Henter inn informasjon fra siden

$handle = fopen("http://www.charlie.no/index.php", "rb");

$contents = '';

while (!feof($handle)) {

  $contents .= fread($handle, 8192);

}

fclose($handle);


// Leser den informasjonen vi ønsker ved hjelp av Regex

preg_match_all("/<option value=\"([0-9]{3})\">([a-z0-9æøåÆØÅ:()\"'.,\-_ ]*)<\/option>/i", $contents, $matches, PREG_PATTERN_ORDER);


// Legger id og tittel inn i tabell

$film['id'] = $matches[1];

$film['tittel'] = $matches[2];



// Her begynner formateringen av output!

for ($i = 0; $i < sizeof($film['id']); $i++) {

	if ($i == 0) {

  echo "<b>Filmer som går:</b><br />";

	} else if ($i == 10) {

  echo "<br /><b>Filmer som kommer:</b><br />";	

	}

	echo "<a href=\"http://www.charlie.no/filmer.php?Id=" . $film['id'][$i] . "\">" . $film['tittel'][$i] . "</a><br />";

}


?>
Alt av formatering kan du selv gjøre under kommentaren med formatering av output. Tabellen som inneholder data ser slik ut: $film[a] der a = enten 'id' eller 'tittel' (med fnutter) b = nummeret i arrayen (fra 0 til og med 19). De 10 første numrene er gjeldende, og de 10 siste numrene er kommende. For å hente ut film 8 sin tittel blir det da:
$film['tittel'][8]

Håper det klarer opp litt...

0

Del dette innlegget


Lenke til innlegg
Del på andre sider

Skrevet

[LØST]

0

Del dette innlegget


Lenke til innlegg
Del på andre sider

Skrevet

Dersom du skal ha delt opp listen i filmer som går og filmer som kommer vil Druber sin løsning bare fungere så lenge det er 10 filmer som spilles.

Det kan godt tenkes at kinoen setter opp flere eller færre filmer enn de har saler til. Da vil listen din bli feil.

0

Del dette innlegget


Lenke til innlegg
Del på andre sider

Skrevet

Hvordan endrer jeg det da?

0

Del dette innlegget


Lenke til innlegg
Del på andre sider

Skrevet

Det kan du gjøre ved å først separere de to skjemaene fra resten av koden. Og deretter bruke samme metode på de to skjemaene.

SLIK:

<?php

// Henter inn informasjon fra siden

$handle = fopen("http://www.charlie.no/index.php", "rb");

$contents = '';

while (!feof($handle))

{

	$contents .= fread($handle, 8192);

}

fclose($handle);


// Vi er på jakt etter to forms som har filmer.php som action. Her søker vi dem opp for siden å benytte resultatet i to nye søk. 

preg_match_all('/<form action=\"filmer.php\" method=\"GET\">(.*)<\/form>/i s U', $contents, $lister, PREG_PATTERN_ORDER);



// Leser den informasjonen vi ønsker ved hjelp av Regex

preg_match_all("/<option value=\"([0-9]{3})\">([a-z0-9æøåÆØÅ:()\"'.,\-_ ]*)<\/option>/i", $lister[1][0], $matches, PREG_PATTERN_ORDER);

$film['id'] = $matches[1];

$film['tittel'] = $matches[2];

echo "<b>Filmer som går:</b><br />";

for ($i = 0; $i < sizeof($film['id']); $i++)

{

	echo "<a href=\"http://www.charlie.no/filmer.php?Id=" . $film['id'][$i] . "\">" . $film['tittel'][$i] . "</a><br />";

}

preg_match_all("/<option value=\"([0-9]{3})\">([a-z0-9æøåÆØÅ:()\"'.,\-_ ]*)<\/option>/i", $lister[1][1], $matches, PREG_PATTERN_ORDER);

$film['id'] = $matches[1];

$film['tittel'] = $matches[2];

echo "<b>Filmer som kommer:</b><br />";

for ($i = 0; $i < sizeof($film['id']); $i++)

{

	echo "<a href=\"http://www.charlie.no/filmer.php?Id=" . $film['id'][$i] . "\">" . $film['tittel'][$i] . "</a><br />";

}

?>

0

Del dette innlegget


Lenke til innlegg
Del på andre sider

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 konto

Logg inn

Har du allerede en konto? Logg inn her.


Logg inn nå

  • Hvem er aktive   0 medlemmer

    Ingen innloggede medlemmer aktive