WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Hämta info från en sida och lägg in det i databasen (https://www.wn.se/forum/showthread.php?t=1040050)

MusikMixen 2010-01-16 22:55

Hämta info från en sida och lägg in det i databasen
 
Halloj!

Har letat men inte riktigt funnit den hjälpen jag behöver.
Jag skulle vilja hämta info från en sida (text) och spara det direkt i databasen (Mysql) eller som en txtfil och lägga in den i databasen.

Det handlar om "datum", "Namn", "Ställe", "län"

Tacksam för tips eller hjälp..
Mvh, Micke

hnn 2010-01-16 23:59

http://dev.mysql.com/doc/refman/5.1/en/insert.html

http://se2.php.net/mysql_query

MusikMixen 2010-01-17 00:38

Citat:

Ursprungligen postat av hnn (Inlägg 20339390)

Jag var kanske lite otydlig!
Jag vill hämta texten från en hemsida, typ dammsuga den.
Tex danserna på denna sidan vill jag hämta och lägga in i databasen: http://www.kindbergs.nu/spelplan/2010_02.html

/M

Conny Westh 2010-01-17 02:29

Citat:

Ursprungligen postat av Dansbandsdax.se (Inlägg 20339397)
Jag var kanske lite otydlig!
Jag vill hämta texten från en hemsida, typ dammsuga den.
Tex danserna på denna sidan vill jag hämta och lägga in i databasen: http://www.kindbergs.nu/spelplan/2010_02.html

/M

I C/C++ skulle du kunna använda (fabulerat fritt ur minnet, felhantering har jag skippat):

Kod:

    char current_line[4096];
    FILE fptrPage;
    fptrPage =  fopen("http://www.kindbergs.nu/spelplan/2010_02.html", "r");
    while !feof(fptrPage)
    {
      // process current line
      fgets(fptrPage, current_line);
    }
    fclose(fptrPage);
}

Dvs du öppnar sidan som en "stream" dvs en "textsträng" och sedan får du läsa in texten tecken för tecken elelr som hela "chunk" beroende på vilken specifik läsfunktion du använder. Jag misstänker att det finns liknande funktioner i php sök efter open eller fileopen elelr streamopen eller något sånt.

När du väl "öppnat" sidan så ska du använda en funktion för att läsa och de brukar heta något med "read" eller "gets", typ freads(), freadf(), fgets() för att läsa strängar.

Avsluta med en fclose(fptrPage);



Referens för php-funktioner:
http://www.php.net/manual/en/function.fopen.php
http://www.php.net/manual/en/function.feof.php
http://www.php.net/manual/en/function.fgets.php
http://www.php.net/manual/en/function.fclose.php

Finns exempel för ftp-protokollet där.

Kod:

<?
    $fptrPage = fopen("http://www.kindbergs.nu/spelplan/2010_02.html", "r");
    $current_line = fgets($fptrPage);
    while (!feof($fptrPage))
    {
      // process current line
      $current_line = fgets($fptrPage);
    }
    fclose($fptrPage);
?>


Arguspunktnu 2010-01-17 02:47

cURL är tveklöst bäst, kolla lite exempel här:
http://curl.haxx.se/libcurl/php/examples/
Ofta är cURL förinstallerat på webbhotellet. Kolla mha phpinfo();. Sedan plockar du bara fram vad du vill ha med reguljära uttryck.

Clarence 2010-01-17 11:59

1.) Hämta dokumentet ifråga. Curl är smidigt men ska du inte greja med cookies, sessions, redirects osv är det inte så viktigt vad du väljer.
2.) Läs ut informationen du vill ha. Vanligaste metoderna är att traversera dom-trädet respektive reguljära uttryckt (regular expressions/regex).
3.) Lägg in den hämtade information i en databas-tabell som du har skapat med en struktur som passar din data.

Det finns ingen färdig kod för att göra detta utan det kräver lite kunskap och pill.

Det finns dock desktop-program för att hämta delar av dokument från din egen dator för att sen publicera dessa. Tyvärr minns jag inte vad dessa kan heta då jag bara stött på dom som hastigast. Men söker du på screen scraping och går igenom ett par sidors resultat kanske du hittar något sådant.

HenSod 2010-01-17 13:09

En lättanvänd DOM parser finns på http://sourceforge.net/projects/simplehtmldom/. Jag rekommenderar den varmt.

MusikMixen 2010-01-17 13:54

Tack så jätte mycket för era svar. Ska kolla igenom sidorna ni tipsade om!


Alla tider är GMT +2. Klockan är nu 23:39.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson