backup vom guestbook (@beeblebrox u.a. interessierte)

Alles über das Urgästebuch und seinen Nachnachfolger.

Moderator: Hans Shaft

Antworten
Benutzeravatar
terf
Generalbevollmächtigter
Beiträge: 1271
Registriert: Do Mai 02, 2002 8:03 pm
Wohnort: Schachtanlage Gegenort

backup vom guestbook (@beeblebrox u.a. interessierte)

Beitrag von terf »

es ist normales html. aus dem html-code jetzt noch extra die relevanten daten mit einem skript abzugreifen schien mir zu aufwändig. läßt sich aber mit einem geeigneten texteditor prima durchsuchen.
wer mutig ist, kann es sich auch in einem browser angucken, aber wenn man keine cray workstation besitzt, sollte man es besser lassen...
Benutzeravatar
Kujat
Beiträge: 131
Registriert: Di Mai 07, 2002 3:14 pm
Wohnort: Siegmaringen z.Zt. a.Brd. Aufklärer Dr. Sommer
Kontaktdaten:

Beitrag von Kujat »

Jemand backuped das GB? Wie kann man das? ich hab irgendwo so sachen wie GetRight oder so, ist das dafür geeignet? oder kann man irgendwo auf ein BkUp zugreifen?
Benutzeravatar
terf
Generalbevollmächtigter
Beiträge: 1271
Registriert: Do Mai 02, 2002 8:03 pm
Wohnort: Schachtanlage Gegenort

Beitrag von terf »

ich mache das backup von gerhard, ja. daraus berechne ich ja z.b. auch die statistik. getright hilft da nicht viel weiter. ich benutze ein php-skript um den inhalt direkt in eine datenbank zu schreiben. sie können es gerne haben, müssen nur sagen, in welchem format.
Malimarc

Beitrag von Malimarc »

Wie gross ist denn das File genau? Oder sind es mehrere? Vielleicht laesst es sich ja in Teilen aufs Netz legen?
Benutzeravatar
terf
Generalbevollmächtigter
Beiträge: 1271
Registriert: Do Mai 02, 2002 8:03 pm
Wohnort: Schachtanlage Gegenort

Beitrag von terf »

es ist doch im netz. siehe topic <a href="viewtopic.php?t=77">Gästebucharchiv und -suchmaschine</a>.
graf lambda

backup von website machen

Beitrag von graf lambda »

Kujat hat geschrieben:Jemand backuped das GB? Wie kann man das? ich hab irgendwo so sachen wie GetRight oder so, ist das dafür geeignet? oder kann man irgendwo auf ein BkUp zugreifen?
<br />
hallo herr kujat.<br />
<br />
moechtest du selnbst ein backup ziehen (egal von welcher site, ob hanss guestbook oder wussow.tk, oder was auch immer) empfiehlt das das utility <a href="http://www.gnu.org/software/wget/">wget</a>. das programm gibt es fuer diverse betriebssysteme und ist komplett frei.<br />
<br />
du kannst damit eine ganze webpraesenz runterladen (inkl. links und grafiken), wenn noetig kann man mit dem programm sogar einen sog. "referer" mitschicken, anhand dessen z.b. lycos (oder wo neulich das problem mit den .mid-files war) oder andere anbieter versuchen zu ueberpruefen, ob du von der eigenen seite kommst, einer ganz anderen oder gar die url per hand eingetippt hast.<br />
<br />
um gerhards guestbook zu backuppen hab ich mir neulich ein kleines shell-script gebastelt, das alle seiten durchlaeuft (die methode ist leider nen bischen umstaendlich, aber es bleibt einem wohl nichts anderes uebrig, solange es bei guestbook.de nicht einen parameter gibt, der es ermoeglicht mehr als nur 10 eintraege pro seite anzuzeigen):<br />
<br />
<code>
#!/bin/sh

skip_stop=2200;
skip=0;

while [ $skip -ne $skip_stop ]; do
wget "http://two.guestbook.de/gb.cgi?gid=107286&skip=$skip"; skip=$(expr $skip + 10);
done
</code>
<br />
bis denne, GL.
Benutzeravatar
Kujat
Beiträge: 131
Registriert: Di Mai 07, 2002 3:14 pm
Wohnort: Siegmaringen z.Zt. a.Brd. Aufklärer Dr. Sommer
Kontaktdaten:

Beitrag von Kujat »

Hallo Herr Graf,
wow, danke, werd ich mal evaluieren.
graf lambda

Beitrag von graf lambda »

terf hat geschrieben:ich mache das backup von gerhard, ja. daraus berechne ich ja z.b. auch die statistik. getright hilft da nicht viel weiter. ich benutze ein php-skript um den inhalt direkt in eine datenbank zu schreiben. sie können es gerne haben, müssen nur sagen, in welchem format.
waer interessant. hast du lust es mal wo zum download bereitzustellen ?
was meinst du mit format, .tar.bz2, oder so ?
Benutzeravatar
terf
Generalbevollmächtigter
Beiträge: 1271
Registriert: Do Mai 02, 2002 8:03 pm
Wohnort: Schachtanlage Gegenort

Beitrag von terf »

nein, mit format meinte ich das grundlegende dateiformat. wie gesagt, momentan ist es in einer mysql-datenbank. mögliche formate wären also sql-language, csv, access, excel, usw.
allerdings betone ich nochmal, daß es ja im netz verfügbar ist und das auch noch durchsuchbar. der link wurde hier schon gepostet und auch von hans shafts gerhard-fan-seite führt ein link dorthin.
graf lambda

Beitrag von graf lambda »

terf hat geschrieben:nein, mit format meinte ich das grundlegende dateiformat. wie gesagt, momentan ist es in einer mysql-datenbank. mögliche formate wären also sql-language, csv, access, excel, usw.
allerdings betone ich nochmal, daß es ja im netz verfügbar ist und das auch noch durchsuchbar. der link wurde hier schon gepostet und auch von hans shafts gerhard-fan-seite führt ein link dorthin.
ahso. ich dachte eher an das script selbst, das die html dateien in die datenbanktabelle(n) schaufelt.
Benutzeravatar
terf
Generalbevollmächtigter
Beiträge: 1271
Registriert: Do Mai 02, 2002 8:03 pm
Wohnort: Schachtanlage Gegenort

Beitrag von terf »

das möchte ich eigentlich nicht, zumal es ja sowieso sinnlos ist nach dem tode gerhard's guestbooks.
graf lambda

Beitrag von graf lambda »

terf hat geschrieben:das möchte ich eigentlich nicht, zumal es ja sowieso sinnlos ist nach dem tode gerhard's guestbooks.
nicht unbedingt, es wuerde ja auch z.b. bei hans' gaestebuch funzen. und ein bischen programmieren lernen ist ja nie schlecht.
aber wenn du nicht willst....
Benutzeravatar
terf
Generalbevollmächtigter
Beiträge: 1271
Registriert: Do Mai 02, 2002 8:03 pm
Wohnort: Schachtanlage Gegenort

Beitrag von terf »

ich müßte es erst mal kommentieren, sonst nützt es ja auch nicht viel; außerdem ist es auch sehr dahingeschludert, ohne fehlerchecks usw.; wäre mir irgendwie peinlich. naja, mal sehen...

ps: ist der allgemeinheit eigentlich das wort schludern bekannt?
Hans Shaft
Abschnittsbevollmächtigter
Beiträge: 326
Registriert: Sa Mai 04, 2002 10:32 pm
Kontaktdaten:

Beitrag von Hans Shaft »

Klar, schludern steht sogar im Duden:
schlu|dern (nachlässig arbeiten); ich ...ere (R22)
Benutzeravatar
terf
Generalbevollmächtigter
Beiträge: 1271
Registriert: Do Mai 02, 2002 8:03 pm
Wohnort: Schachtanlage Gegenort

Beitrag von terf »

hier die kommentierte wichtigste routine zum einlesen des gästebuches.
sieht ein wenig durcheinander aus, da das forum die zeilen umbricht.

Code: Alles auswählen

  //filename entält den link auf die guestbook-seite mit den neusten einträgen
  $filename = "http://two.guestbook.de/gb.cgi?gid=613425&prot=nxuwil&eid=0&skip=0";

  //seite wird in $fcontents eingelesen
  $fcontents = implode ('', file ($filename));
  
  //erkennung der internen guestbook.de id des vorletzten eintrags, einlesen in $starteintrag
  //letzter eintrag funkioniert seltsamerweise nicht -> fehler bei guestbook.de?
  preg_match_all("=\|\&nbsp;\&nbsp;<A.*gid\=613425\&prot\=nxuwil&eid\=(.*)\&amp\;dir\=gt\">N\&auml;chste Seite</A>=siU", $fcontents, $a);
  $starteintrag = trim($a[1][0]) + 9;
  //echo $fcontents;
  //echo $starteintrag;


//$status ist abbruchbedingung der großen einleseschleife
$status = true;

//einleseschleifenbeginn
while ($status){
  
  //einlesen der eintragseite mit aktuellem $starteintrag
  $filename = "http://two.guestbook.de/gb.cgi?gid=613425&prot=nxuwil&eid=$starteintrag&dir=gt";
  $fcontents = implode ('', file ($filename));

  //abschneiden von überflüssigem zeug (werbung usw.), nur eintragstabelle soll behandelt werden
  //$seite enthält diesen tabelleninhalt
  preg_match_all("=<TABLE WIDTH\=\"80%\" BORDER\=0>(.*)</TABLE>=siU", $fcontents, $a);
  $seite = trim($a[1][0]);

  //aufsplitten der $seite in die einzelnen einträge
  //$eintrag ist array mit den messages
  //genaue methode muß geheim bleiben, um html-spielereien vorzubeugen
  foreach ($eintrag as $value) {	//jeder $eintrag wird behandelt
    //einlesen des messagetextes
    preg_match_all("=<BR><BR>(.*)<BR><BR>=si", $value, $b);
    $message = addslashes(trim($b[1][0]));

    //einlesen der emailadresse
    preg_match_all("=<EM><B>.*\(.*<A.*>(.*)</A> / .*\).*</EM>=siU", $value, $b);
    $useremail = "'".addslashes(trim($b[1][0]))."'";
    if ($useremail=="''")
  	$useremail="NULL";

    //einlesen der homepage
    preg_match_all("=<EM><B>.* / .*<A.*>(.*)</A>\).*</EM>=siU", $value, $b);
    $userhomepage = "'".addslashes(trim($b[1][0]))."'";
    if ($userhomepage=="''")
  	$userhomepage="NULL";

    //einlesen des datums
    preg_match_all("=Datum:(.*)<BR>=siU", $value, $b);
    $datum = addslashes(trim($b[1][0]));

    //einlesen des usernamens
    preg_match_all("=<EM><B>(.*)</B>=siU", $value, $b);
    $username = addslashes(trim($b[1][0]));

    //einlesen der eintragsnummer
    preg_match_all("=<B><FONT SIZE.*>(.*)</FONT></B>=siU", $value, $b);
    $entry = addslashes(trim($b[1][0]));

    //erstellen der sql-abfrage fürs einfügen
    $query_add="INSERT INTO hans (username, message, date, entry, useremail, userhomepage) VALUES ('$username', '$message', '$datum', '$entry', $useremail, $userhomepage)";
    
    //nur einfügen, wenn eintragsnummer $entry größer ist als größter schon in der datenbank vorhandener eintrag $maxentry
    if ($entry > $maxentry) {
	//eintrag hinzufügen oder abbrucg bei fehler
    	$result_add=mysql_query($query_add);// or die("<br><br>Invalid query: $query_add");
    	echo "eintrag $entry hinzugef&uuml;gt<br>";
    	//anzahl hinzugefügter einträge inkrementieren
    	++$counter;
    }
    //ein kleinerer eintrag ist schon in der datenbank vorhanden, also abbruch
    else{
    	$status=false;	//große schleife auch abbrechen
    	switch ($counter) {
    		case 0:
    			echo "<h1>Datenbank war bereits auf dem neuesten Stand.</h1>";
    			break;
    		case 1:
    			echo "<h1>$counter Posting wurde hinzugef&uuml;gt.</h1>";
    			break;
    		default:
    			echo "<h1>$counter Postings wurden hinzugef&uuml;gt</h1>";
    	}
    	break;
    }
  }

    	//$starteintrag der neuen seite festlegen
    	$starteintrag -= 10;
    	echo "<b>starteintrag: $starteintrag</b><br>";
    	//3 sekunden warten bis zum einlesen der neuen seite um spammen vorzubeugen und server nicht zu überlasten
    	sleep (3);
}
Antworten