Avatar billede kennethdavidsen Nybegynder
31. juli 2003 - 08:04 Der er 7 kommentarer og
1 løsning

Hente indhold fra andre websites

Jeg er ved at lave en Webside i PHP og vil på siden blandt andet have noget indhold fra andre sider f.eks. Valutakurser, nyheder og hvad man kan finde på. Jeg ved man kan bruge RSS (Rich Site Summary, eller Really Simple Syndication), men det er ikke alle der tilbyder dette. Jeg mener jeg har læst et eller andet sted, at man også kan bruge en anden metode til at hente oplysninger fra andre websites, noget med forskellige HTTP komandoer.

Er der nogen der kan hjælpe mig med dette ?

P.S. Det er ikke hensigten at rippe sider, hvor det ikke er tiladt eller indhetet tilladelse forinden.
Avatar billede fangel Nybegynder
31. juli 2003 - 08:23 #1
det er muligt, men vil hive din trafik en del op ;)

princip:

1) find noget kode på siden som ALTID vil stå lige før (og vis muligt, også noget der står lige efter)
2) åben en socket til serveren (port 80)
3) send et http request på den side du vil hente noget fra
4) finde koden mellem de 2 før fundede kodestumper (hvis man kun har før kan det stadig laves, man skal bare tænke sig lidt om)

Morten
Avatar billede kennethdavidsen Nybegynder
31. juli 2003 - 09:57 #2
Hej Morten det hjalp en hel del, men jeg havde håbet på et lille kodet eksempel. Hvis der er en der kan komme med et lille eksempel på kode, der gør ovenstående, er 30 poeng jeres.

Kenneth
Avatar billede fangel Nybegynder
31. juli 2003 - 10:54 #3
jeg kan til nød lave det i PHP ;)

<?php

$server = "dr.dk";
$page = "";
$startTag = "Mest popul&aelig;re"; // første gang dette kommer
$endTag = "</table>"; // til første gang </table> kommer.

$socket = fosckopen($server, 80);
      fputs($socket, "GET /" . $page . " HTTP/0.9\n");
      fputs($socket, "Host: " . $server . "\n");
      fputs($socket, "\n");
      while(!feof($sock)){
        $buffer[] = htmlentities(fgets($sock, 2048));
      }
      fclose($sock);
      $tmpStr = implode("", $buffer);
      $tmpStr = explode($startTag, $tmpStr);
      $tmpStr = explode($endTag, $tmpStr[0];

$detDuLederEfter = $tmpStr[0];

?>
---

koden er utestet, og kun en prove-of-concept kode ;)

Morten
Avatar billede kennethdavidsen Nybegynder
31. juli 2003 - 11:30 #4
Tak for svaret. Jeg er rimelig ny her og kan ikke helt finde ud af hvordan du får dine poeng. Kan du også hjælpe mig med det.

Kenneth
Avatar billede fangel Nybegynder
31. juli 2003 - 11:42 #5
du beder mig om at lægge et svar, og så gør jeg det...

---

svaa'r

Morten
Avatar billede fangel Nybegynder
31. juli 2003 - 12:40 #6
tak ;)
Avatar billede seje_reje Nybegynder
31. juli 2003 - 22:00 #7
morten der var jeg altså ikke stået op....... lidt for tidligt

/silas
Avatar billede fangel Nybegynder
01. august 2003 - 10:07 #8
kl 8:23? ;) ;) det er da ikke så tidligt
jeg stod op kl 8:07... ;) ;) det er 16 min til at tænde computeren, finde spørgsmålet og svare på det ;)

(stod op kl 9 idag)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester