Spider für eine Seite

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Rainer Zufall, 7. Juli 2008 .

Schlagworte:
  1. 7. Juli 2008
    MoinMoin,

    ich habe im Moment ein kleines Problem:

    Ich habe einen Webshop aufgesetzt, welcher auch einwandfrei funktioniert, allerdings läuft dieser erst mit einem seperat eingebauten serverseitigen Cache recht schnell. Allerdings muss dafür immer erst die Seite des jeweiligen Produkts aufgerufen werden und ein Kunde müsste eine recht lange Wartezeit in Kauf nehmen (zwischen 5-20 sekunden). Daher suche ich ein möglichst PHP-basierendes Spider Script welches man jede nacht per Cronjob starten kann um den Cache neu aufzubauen, damit die Seite aktuell und schnell bleibt. Das Script sollte aber dabei nur auf der einzelnen Domain bleiben, also keine externen Seiten besuchen.

    Weiß da irgendjemand ein Script/eine Lösung?

    grüße
    thunderhans
     
  2. 7. Juli 2008
    AW: Spider für eine Seite

    also ich benutze das Shopsystem von

    kaonsoftwares und die gehen genau nach diesem System vor wie du es gemeint hast, per CSV List-Import , alles ganz einfach. Ist aber auch mehr für den Online-Preisvergleich geschaffen.

    Das Spiderscript was dort eingebaut ist, sucht nach allen Seiten und Preisen die man eingibt. Diese werden dann seperat zusammengefasst.

    Wenn du mal ein Beispiel für dieses Shopsystem sehen willst

    hier:
    http://products.kaonsoftwares.com/price-comparison/

    hier die adminsection-demo:
    http://products.kaonsoftwares.com/price-comparison/admin/

    ID: Admin
    PW: as

    ich denke dieses Spiderscript lässt sich auch für andere Zwecke verwenden
     
  3. 7. Juli 2008
    AW: Spider für eine Seite

    sollte eigentlich mit wget machbar sein...
    wget(1): non-interactive network downloader - Linux man page

    mit der option "--spider". nun bin ich mir nicht sicher, wie das "Wget will behave as a Web spider, which means that it will not download the pages, just check that they are there." implementiert ist. es kann sein, dass es den server nicht veranlasst den cache neu aufzubauen. sollte das der fall sein, so lasse die seiten von wget jeweils nach "/dev/null" laden...
     
  4. 7. Juli 2008
    AW: Spider für eine Seite

    ähm, also mit php is das möglich, nur einfach isses ned.

    aber mal ganz abgesehn davon das es sinnlos is, mal ne andre frage... warum dauern deine scripts 5-20 sekunden? an deiner stelle würde ich mal überlegen warum die so lange dauern, ich mein ich hab selber schonmal sowas ähnliches gecodet und dank php-cache nen seitenaufbau von ~ 0.5-1 sec.

    schau mal hier: http://de.wikipedia.org/wiki/Alternative_PHP_Cache
     
  5. 7. Juli 2008
    AW: Spider für eine Seite

    guck dir mal cUrl an im Manuelen da solltest du alles finden um dir ein eigenden spider zu basteln

    mfg
    1mp
     
  6. 7. Juli 2008
    AW: Spider für eine Seite

    @ Murdoc:
    Ich nutze im moment "Cache_lite" für pear, der Alternative PHP Cache scheint auch mit pear installierbar zu sein, allerdings weiß ich nicht wie ich diesen in Zen Cart einbauen könnte.
    Die schlechte Performance kommt von den wirklich lahmen Strato-DB Server....

    @1mp:
    cUrl wird von Strato leider nicht unterstützt...normalerweise würde ich auch den Provider wechseln für eine bessere Datenbank-Performance, allerdings hat derjenige für den ich den Shop mache einen 12-Monate Strato-Vertrag.....

    @Timer:
    Danke für den hinweiß, ich schau mir das mal an
     
  7. 7. Juli 2008
    AW: Spider für eine Seite

    dann cache doch die mysql-results

    PHP:
    <? php
    if( file_exists ( 'mysql_result.tmp.php' )) {
        
    $r  = include  'mysql_result.tmp.php' ;
    } else {
        
    $q  mysql_query ( '
            select `nen_ganzen_haufen` 
            from `der_db`.`ner_tablelle` 
            where `feld` = true
        '
    );

        
    $r  = array();
        while(
    $r [] =  mysql_fetch_assoc ( $q ));

        
    file_put_contents (
            
    'mysql_result.tmp.php'
            
    '<?php return unserialize(base64_encode(\''  base64_decode ( serialize ( $r )) .  '\'; ?>'
        
    );
    }
    ?>
    wenn du das so machst brauchst du keinen bot mehr, immer der erste user der die seite betritt cached alle mysql-results von selber.

    am anfang is deine seite vielleicht lahm, aber nach ner zeit und wenn du a weng mithilfst hast bald alles wichtige im cache.
     
  8. 7. Juli 2008
    AW: Spider für eine Seite

    mhh... vll. noch das alter der datei vergleichen, wenn diese existiert...

    aber, naja... richtig "cachen" ist das net...
     
  9. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.