|
|
|
|
| Zitat von GH@NDI
| Zitat von Renga
| Zitat von GH@NDI
Wen interessiert schon was aussehalb von BaWü passiert?
| |
*unterschreib*
| |
Na dafür biste aber nicht besonders oft dort
Könntest ruhig mal die Post konfunktar ankurbel. NRW ist immernoch vor uns
| |
Soeben getan.
|
|
|
|
|
|
|
bäääh.... wessis
|
|
|
|
|
|
|
| Zitat von unitrialer
Ich darf mich seit heute Fachinformatiker für Anwendungsentwicklung schimpfen...
| |
Gratulation.
Nur für die Statistik: Wollten sie dein Berichtsheft sehen?
|
|
|
|
|
|
|
| Zitat von TriggerTG
Hat jemand mal lust den Gehirnsalat zu rippen? In XML oder so?
| |
gehirnsalta.zip gezippt 489kb, entpackt ~3mb
Und noch zum Angeben:
Thread Parser:
|
PHP: |
use lib "e:/MyModules/";
use Modsde;
use Data::Dumper;
my $t = Modsde::Thread->new(tid => 140831, debug => 1);
$t->parseThread;
print "Found " . scalar(@{$t->posts}) . " posts\n";
open(FILE, ">gehirnsalat.txt");
print FILE Dumper [ $t->posts ];
close(FILE);
|
|
in-xml-umwandler:
|
PHP: |
use lib "e:/MyModules/";
use Modsde;
use XML::Simple;
$| = 1;
open(FILE, "<gehirnsalat.txt");
my $data = eval join "", <FILE>;
close(FILE);
my $g = { post => [] };
foreach my $post ( @$data ) {
push(@{$g->{posts}}, { post => {
pid => [$post->pid],
date => [$post->date],
time => [$post->time],
uid => [$post->user->uid],
username=> [$post->user->username],
title => [$post->title],
text => [$post->post],
}});
}
print XMLout($g, RootName => "gehirnsalat");
|
|
Viel Spaß damit
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von GH@NDI am 01.02.2007 14:55]
|
|
|
|
|
|
So hab jetzt DSL 6000. Nun kann ich mir endlich Pornos laden, wo man auch was erkennt.
e\ Danke Ghandi!
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von TriggerTG am 01.02.2007 14:56]
|
|
|
|
|
|
| Zitat von GH@NDI
| Zitat von TriggerTG
Hat jemand mal lust den Gehirnsalat zu rippen? In XML oder so?
| |
gehirnsalta.zip gezippt 489kb, entpackt ~3mb
Und noch zum Angeben:
Thread Parser:
|
PHP: |
use lib "e:/MyModules/";
use Modsde;
use Data::Dumper;
my $t = Modsde::Thread->new(tid => 140831, debug => 1);
$t->parseThread;
print "Found " . scalar(@{$t->posts}) . " posts\n";
open(FILE, ">gehirnsalat.txt");
print FILE Dumper [ $t->posts ];
close(FILE);
|
|
in-xml-umwandler:
|
PHP: |
use lib "e:/MyModules/";
use Modsde;
use XML::Simple;
$| = 1;
open(FILE, "<gehirnsalat.txt");
my $data = eval join "", <FILE>;
close(FILE);
my $g = { post => [] };
foreach my $post ( @$data ) {
push(@{$g->{posts}}, { post => {
pid => [$post->pid],
date => [$post->date],
time => [$post->time],
uid => [$post->user->uid],
username=> [$post->user->username],
title => [$post->title],
text => [$post->post],
}});
}
print XMLout($g, RootName => "gehirnsalat");
|
|
Viel Spaß damit
| |
| Zitat von TriggerTG
Hat jemand mal lust den Gehirnsalat zu rippen? In XML oder so?
| |
Funktioniert das jetzt mir dem Script?
|
|
|
|
|
|
|
| Zitat von TriggerTG
So hab jetzt DSL 6000. Nun kann ich mir endlich Pornos laden, wo man auch was erkennt.
| |
*gähn*
|
|
|
|
|
|
|
Die XML ist genauso wie ich es mir vorgestellt habe. Von nun an ist der Gehirnsalat unsterblich mwahahahahahahahaha
e\ verdammt, ghandi ist einfach der Ubernerd. Ich glaube er wird statt Dicope mein Nachfolger :P
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von TriggerTG am 01.02.2007 15:00]
|
|
|
|
|
|
| Zitat von Renga
Funktioniert das jetzt mir dem Script?
| |
Jop. Zumindest wenn du meine Modulreihe "Modsde" hast. Allerdings gibts die nirgendwo öffentlich. Ich habe Angst zerissen zu werden,wenn die Leute meine Regexe sehen
|
|
|
|
|
|
|
| Zitat von GH@NDI
| Zitat von Renga
Funktioniert das jetzt mir dem Script?
| |
Jop. Zumindest wenn du meine Modulreihe "Modsde" hast. Allerdings gibts die nirgendwo öffentlich. Ich habe Angst zerissen zu werden,wenn die Leute meine Regexe sehen
| |
Ich kann kein XML.
Was passiert den genau in diesem Script?
Dort werden einfach alle daten kopiert?
In was? Also wo werden die gespeichert?
|
|
|
|
|
|
|
| Zitat von TriggerTG
Die XML ist genauso wie ich es mir vorgestellt habe. Von nun an ist der Gehirnsalat unsterblich mwahahahahahahahaha
e\ verdammt, ghandi ist einfach der Ubernerd. Ich glaube er wird statt Dicope mein Nachfolger :P
| |
Danke dem ersten Praxissemester. Da war mir so öde, das ich beschloss, nen Forenparser zu bauen. Habe auch immer ne aktuelle Kopie des BaWü Forums in meiner Datenbank
Wird einmal die Stunde aktualisiert
|
|
|
|
|
|
|
| Zitat von Renga
| Zitat von GH@NDI
| Zitat von Renga
Funktioniert das jetzt mir dem Script?
| |
Jop. Zumindest wenn du meine Modulreihe "Modsde" hast. Allerdings gibts die nirgendwo öffentlich. Ich habe Angst zerissen zu werden,wenn die Leute meine Regexe sehen
| |
Ich kann kein XML.
Was passiert den genau in diesem Script?
Dort werden einfach alle daten kopiert?
In was? Also wo werden die gespeichert?
| |
Naja, XML kommt da auch nicht viel vor
Also, das erste Script, der Thread Parser, geht rekursiv über den ganzen Thread und läd alle Seiten runter. Dann extrahiert er mit diesem Regex
|
Code: |
reply_(\d+).*?openProfile\("(\d+)".*?>(?:<s>|)([^<]+).*?<td height=15>[\s\n]*(?:<b>(.*?)</b>|).*?vAlign='top'>(.*?)</td></tr><tr><td height=15>(?:<font.+?>(.+?)</font>|).*?(\d\d\.\d\d\.\d\d\d\d)\s+(\d{1,2}:\d\d:\d\d)
|
|
Alle posts und splittet sie zugleich in ihre Bestandteile auf. Mit diesen Daten wird nun ummer ein neues Modsde::Posts Objekt erzeugt und an ein Array angehängt. Danach gebe ich einfach diese Datenstruktur mittels Data:umper in ein TXT-File aus
Das sieht dann so aus:
|
Code: |
$VAR1 = [
bless( {
'pid' => '1236430020',
'time' => '19:24:15',
'date' => '01.06.2006',
'post' => 'Hallo,<br />
<br />
hier - wie vorgeschlagen - ein kleiner OffTopic-Thread, der für
sonstige Unterhaltungen, Diskussionen und Streitereien gedacht sein
soll (natürlich nicht im POT-Stil). <br />
<br />
Zudem können hier schnell zu beantwortende Fragen gestellt werden, für
die man sonst einen der vielen anderen Sammelthreads benutzen müsste
<img src=\'./img/smilies/icon18.gif\' alt=\'mit den Augen rollend\'
align=\'abscenter\' />.<br />
<br />
<img src="http://bin-ich-jesus.de/gehirnsalat.png" border=0>
',
'user' => bless( {
'uid' => '19602',
'username' => 'TriggerTG'
}, 'Modsde::User' ),
'editline' => '[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von <a href=\'javascript:void(0);\' onClick=\'openProfile("19602", "")\'>TriggerTG</a></a> am 16.06.2006 6:02]',
'title' => 'wir unter uns'
}, 'Modsde::Post' ),
.
.
.
]
|
|
Das ist jetzt valider Perlcode, den lese ich im 2. Script, dem ver-xml-er, ein. Evale (also führe ihn zur Laufzeit aus) ihn dann und fange das Ergebnis, eine Datenstruktur, auf.
Dann laufe ich mit foreach über alle posts und verpacke diese neu in einem Array. Die Struktur sieht dann so aus:
|
Code: |
$data = [
{
pid => 1,
text => "blah bnlah blha",
title => "huhu",
.
.
},
{
pid => 2,
text => "blah bnlah blha",
title => "huhu",
.
.
},
];
|
|
Und daraus generiert mir dann das XMLSimple Modul das hübsche XML File.
|
|
|
|
|
|
|
| Zitat von TriggerTG
ah ja genau, stimmt.
Kann es sein, dass der Gehirnsalat inzwischen größer ist, als einige Subforen hier? *g*
| | Pffff.
Ich hab mir übrigens überlegt, dass ich die Sperrungsgeschichte mal aufkläre - nicht dass hier jemand ein richtiges Bild von mir bekommt.
|
|
|
|
|
|
Full disclosure.
|
das_böse
kann_lesen_87
|
|
|
|
|
|
|
Ja, keine sorge, ich hatte es dann auch gecheckt
btw: lade heroes mit 440kb/s (bittorrent)
ich muss gleich weinen
|
|
|
|
|
|
|
Ghandi:
Sieht ziemlich kompliziert aus.
Aber was tut den xml?
Du sagst du extrahierst mir "regex" alle posts.
Was genau ist ein Regex?
Ich hab bei Wiki was gefunden kann mir aber nicht wirklich was darunter vorstellen.
So nun kann ich mir dein xml-file ziehen und darin sind nun alle Daten über den Gehirnsalat gespeichert.
Wie kann man diese den nun nutzen, bzw. ausgeben/ansehen?
|
|
|
|
|
|
|
|
|
|
|
Stell dir eifnach vor, dieses XML-Dingens wäre eine art Datenbank. Man kann die Daten des Gehirnsalat somit nun verwenden um es in einer anderen art und weise darzustellen
|
|
|
|
|
|
|
regexe (regular expressions, reguläre Ausdrücke) sind so ne Art komplexer Filter für Zeichenketten. Man kann damit z. B. aus einer HTML-Seite, die das Forum bei Aufruf eines Threads generiert, einen bestimmten Teil extrahieren und den dann weiterverwenden. Regexe sind sehr mächtig, aber man muss übel einen an der Schüppe haben, um sie zu mögen.
|
|
|
|
|
|
|
Ich wollte nur wissen, wieviele Posts in diesem Thread von mir stammen.
815 jetzt
e\ falsch, 560 nur
Bei den restlichen wurde ich nur genannt
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von TriggerTG am 01.02.2007 16:05]
|
|
|
|
|
|
| Zitat von GarlandGreene
regexe (regular expressions, reguläre Ausdrücke) sind so ne Art komplexer Filter für Zeichenketten. Man kann damit z. B. aus einer HTML-Seite, die das Forum bei Aufruf eines Threads generiert, einen bestimmten Teil extrahieren und den dann weiterverwenden. Regexe sind sehr mächtig, aber man muss übel einen an der Schüppe haben, um sie zu mögen.
| |
Also praktisch nur um Teile rauszuschneiden.
| Zitat von TriggerTG
Stell dir eifnach vor, dieses XML-Dingens wäre eine art Datenbank. Man kann die Daten des Gehirnsalat somit nun verwenden um es in einer anderen art und weise darzustellen
| |
Und die kann ich dann wie aus einer MySQL auslesen?
|
|
|
|
|
|
|
Informiere dich mal über XSLT. In dem Zusammenhang wird das denk ich mal ganz gut erklärt
|
|
|
|
|
|
|
Informiere dich mal über XSLT. In dem Zusammenhang wird das denk ich mal ganz gut erklärt
|
|
|
|
|
|
|
| Zitat von Renga
Was genau ist ein Regex?
| | Mit RegExen kannst du eine Zeichenkette (String) maschinenlesbar beschreiben.
Zum Beispiel könnte man überprüfen, ob eine Eingabe e eine gültige PLZ + Ort ist und in in PLZ und Ort aufsplitten.
Das würdest du so versprachlichen:
e fängt mit fünf Zahlen an - das ist die PLZ, danach kommt eine Leertaste und danach kommt eine beliebige Anzahl von Buchstaben, Leerzeichen oder Bindestrichen - das ist der Ort. Danach kommt nichts mehr
Als RegExp würde das so aussehen:
/^([0-9]{5}) ([A-Za-zäöuÄÖÜß \-]+)$/
Übersetzt:
/.../ | begrenzt den RegExp | ^ | ist der Anfang des Strings | (...) | speichert alles dazwischen | [...] | ist eine Characterklasse - also ein Zeichen aus allem, was da drin ist. | [0-9] | ist kurz für [0123456789] | {5} | steht für genau fünf Wiederholungen von dem davor | + | steht für mindestens eine Wiederholung von dem davor | $ | steht für das Ende des Strings |
|
|
|
|
|
|
|
Danke.
Sieht aber irgendwie brutal unübersichtlich und wirr aus.
|
|
|
|
|
|
|
| Zitat von Renga
Sieht aber irgendwie brutal unübersichtlich und wirr aus.
| |
| Computers aren't supposed to be easy, or cute. They're supposed to be intimidating, punch card reading hulks of metal that take up an entire refrigerated room and force you to manually implement recursive procedures and abstract data types in FORTRAN 77. I've been there, deep in the shit, and it is no picnic. | |
|
|
|
|
|
|
|
Ach, das wirkt nur auf den ersten Blick so
Ist halt Übungssache.
Zu empfehlen ist der Regex Coach. Da kann man seine RegExe wirklich gut drin entwickeln. Muss aber unter Umständen aufpassen was man tut. Das Programm kann man bei komplexen Sachen (wie mein Regex zum zerlegen der Posts) auch mal zu einer Endlosschleife bwegen. Bzw. ist auch gut möglich das man einfach aufgrund der Komplexität des RegExes die darunterliegende RegExlibrary zum aussteigen bewegen kann
|
|
|
|
|
|
|
| Zitat von Renga
Ghandi:
Sieht ziemlich kompliziert aus.
Aber was tut den xml?
Du sagst du extrahierst mir "regex" alle posts.
Was genau ist ein Regex?
Ich hab bei Wiki was gefunden kann mir aber nicht wirklich was darunter vorstellen.
So nun kann ich mir dein xml-file ziehen und darin sind nun alle Daten über den Gehirnsalat gespeichert.
Wie kann man diese den nun nutzen, bzw. ausgeben/ansehen?
| |
XML.. http://www.w3schools.com/xml/default.asp
RegExp.. steht für Regular Expression. Regular Expressions sind sehr mächtig, da man z.B. Strings auf eine gewisse Struktur überprüfen kann, Teile eines Strings aus einem String mit gewisser Struktur herrauslösen kannst oder aber auch gewisse Teilstrings aus einem String mit einem anderen Teilstring ersetzten kannst. Praktisches Beispiel ist die Überprüfung von User Eingaben, ob die Email Adresse valid ist. Im Zusammenhang mit diesem Forum kann z.B nur der von Usern geschriebener Text und nicht der gesamte Text (mitsamt HTML vom Forum selber), der ringsrum liegt aus dem String gelöst werden.
Ein sehr sehr gutes Tutorial zu RegExp findest du auf http://www.regular-expression.info/
/Edit: Notiz an mich selbst: zuerst kontrollieren ob ich mich wirklich auf der letzten Thread Seite befinde, bevor ich mit meinem Post beginn. :/
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Tschetsch am 01.02.2007 16:16]
|
|
|
|
|
|
Ach und habt ihr euch schonmal überlegt, wofür man RegExe überhaupt brauchen kann? Nicht umsonst hat jedes SEK einen RegExp-Spezialisten mit.
|
|
|
|
|
|
|
Für was kann man den solche Regex gebrauchen?
Also außer Posts zerlegen?
//ah ok danke Tschetch
btw.:
Man kann ja dann so ein File nach Anzahl von Posts durchsuchen oder?Also so hat es doch trigger gemacht oder?
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Renga am 01.02.2007 16:17]
|
|
|
|
|
Thema: Gehirnsalat ( wir unter uns ) |