backup vom guestbook (@beeblebrox u.a. interessierte)
Moderator: Hans Shaft
- terf
- Generalbevollmächtigter
- Beiträge: 1269
- Registriert: Do Mai 02, 2002 8:03 pm
- Wohnort: Schachtanlage Gegenort
backup vom guestbook (@beeblebrox u.a. interessierte)
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...
wer mutig ist, kann es sich auch in einem browser angucken, aber wenn man keine cray workstation besitzt, sollte man es besser lassen...
backup von website machen
<br />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?
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.
waer interessant. hast du lust es mal wo zum download bereitzustellen ?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.
was meinst du mit format, .tar.bz2, oder so ?
- terf
- Generalbevollmächtigter
- Beiträge: 1269
- Registriert: Do Mai 02, 2002 8:03 pm
- Wohnort: Schachtanlage Gegenort
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.
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.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.
-
- Abschnittsbevollmächtigter
- Beiträge: 326
- Registriert: Sa Mai 04, 2002 10:32 pm
- Kontaktdaten:
- terf
- Generalbevollmächtigter
- Beiträge: 1269
- Registriert: Do Mai 02, 2002 8:03 pm
- Wohnort: Schachtanlage Gegenort
hier die kommentierte wichtigste routine zum einlesen des gästebuches.
sieht ein wenig durcheinander aus, da das forum die zeilen umbricht.
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("=\|\ \ <A.*gid\=613425\&prot\=nxuwil&eid\=(.*)\&\;dir\=gt\">N\ä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ü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ügt.</h1>";
break;
default:
echo "<h1>$counter Postings wurden hinzugefü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);
}