Sitemap generieren mit Perl - neuer Versuch

Sitemap, Klappe "die nächste"


Schon oft probiert, zuletzt - glaube ich - sogar relativ erfolgreich.
Aber warum nicht heute (oder morgen) mal eine "ad hoc"-from-the-scratch-oso-Programmierung-"Stand-alone-comedy!" wagen? Vielleicht klappt's ja mit dem zwischenzeitlich hinzugewonnenem Wissen nun besser, vor Allem schneller?


Es gibt außerdem zwei weitere Motive:
  1. xyz
  2. XYZ
Diese werden später offengelegt.


omx-Webseite-Sitemap, Klappe "die nächste"

#!/usr/bin/perl

# omx-sitemap.plx

use strict;
use warnings;

# Variablen

my @tmp_links;
my %sitemap_links;

# Belegungen

print `lynx -dump 'http://sites.google.com/site/hembelzomx/home/'`;
@tmp_links = grep { m/.* https:\/\/sites\.google\.com\/site\/hembelzomx/ } `lynx -dump 'https://sites.google.com/site/hembelzomx/'`;
print map { $_ } @tmp_links;

# Erstbelegung von %sitemap_links

# Ausprobierereien

#print grep { m/https:\/\/sites\.google\.com\/site\/hembelzomx/ }
So lautete der "Entwurf noch in Entstehung".

Leider aber: Problem, Problem!

zarko@zarko-studio:~/perl-skripte/uebungen/omx-sitemap$ perl omx-sitemap.plx
One account. All of Google.

Sign in to continue to Google Sites

   [avatar_2x.png]
   Enter your email ____________________ ____________________
   Next [1]Find my account

   [2]Sign in with a different account [3]Create account

   One Google Account for everything Google
     * [4]About Google
     * [5]Privacy
     * [6]Terms
     * [7]Help

   Change language [‪English (United States)‬__��..]

Verweise

   1. https://accounts.google.com/signin/usernamerecovery?continue=https://sites.google.com/site/hembelzomx/home/&service=jotspot&hl=en
   2. https://accounts.google.com/AccountChooser?continue=https://sites.google.com/site/hembelzomx/home/&followup=https://sites.google.com/site/hembelzomx/home/&service=jotspot&ul=1
   3. https://accounts.google.com/SignUp?service=jotspot&continue=https://sites.google.com/site/hembelzomx/home/
   4. https://www.google.de/intl/en/about
   5. https://accounts.google.com/TOS?loc=DE&hl=en&privacy=true
   6. https://accounts.google.com/TOS?loc=DE&hl=en
   7. http://www.google.com/support/accounts?hl=en
Das heute (nacht) noch zu klären, dazu fehlt mir allerdings die Lust. Ist neuerdings zum Auslesen der google-sites mit dem Lynx-Browser nur noch mit Anmeldung möglich? Nun, morgen werde ich es ziemlich sicher erfahren.



Fehler gefunden!

Keiner - außer mir (und nur mit Anmeldung) - konnte seit ein paar Monden auf die meinige & hierige Site zugreifen.

Ja, was für ein ... Dingen! Dingens gescheh'n ...

Und nach der Wiederfreigebung

"Geht" auch folgender Code:

#!/usr/bin/perl

# omx-sitemap.plx

use strict;
use warnings;

# Variablen

my $text2grep;
my @tmp_links;
my %sitemap_links;

# Belegungen & Vorarbeiten

$text2grep = `lynx --dump -listonly 'http://sites.google.com/site/hembelzomx/home/'`;
print "\nDer Text:\n\n$text2grep\n\nHoldorido!!\n";

@tmp_links = split ( "\n", $text2grep );
print "\nDie temporäre Ausbeute:\n\n", map { $_, "\n\n" } @tmp_links;

foreach ( @tmp_links ) {
    $_ =~ s/^.*(https:\/\/sites\.google\.com\/site\/hembelzomx\/.*[ ]*)$/$1/;
    if ( $_ !~ m/^https:\/\/sites\.google\.com\/site\/hembelzomx/ ) { $_ = "http://sites.google.com/site/hembelzomx/home/" };
}
print "\nDie nachgearbeitete temporäre Ausbeute:\n\n", map { $_, "\n\n" } @tmp_links;

# Erstbelegung von %sitemap_links

foreach ( @tmp_links ) {
    $sitemap_links{$_} = 0;
}

print "\nLinkhash:\n\n", map { $_, "\n" } %sitemap_links;


# Programm

foreach ( @tmp_links ) {
    if ( $sitemap_links{$_} == 0 ) {
        $text2grep = `lynx --dump -listonly 'http://sites.google.com/site/hembelzomx/home/'`;
        print "\nDer Text:\n\n$text2grep\n\nHoldorido!!\n";

        @tmp_links = split ( "\n", $text2grep );
        print "\nDie temporäre Ausbeute:\n\n", map { $_, "\n\n" } @tmp_links;

        foreach ( @tmp_links ) {
        $_ =~ s/^.*(https:\/\/sites\.google\.com\/site\/hembelzomx\/.*[ ]*)$/$1/;
        if ( $_ !~ m/^https:\/\/sites\.google\.com\/site\/hembelzomx/ ) { $_ = "http://sites.google.com/site/hembelzomx/home/" };
        }
        print "\nDie nachgearbeitete temporäre Ausbeute:\n\n", map { $_, "\n\n" } @tmp_links;
        foreach ( @tmp_links ) {
            $sitemap_links{$_} = 0;
        };
        $sitemap_links{$_} = 1;   
    }    
}

print "\nLinkhash, fullfilled (!) :\n\n", map { $_, "\n" } %sitemap_links;
Tja ... wunderbar!

Selten (bei mir), daß mal was auf Anhieb klappert. Diesmal war nach dem Schreiben des Programmteils ausnahmsweise gar keine Korrektur mehr nötig!

Output (Ausschnitt)

Linkhash, fullfilled (!) :

https://sites.google.com/site/hembelzomx/und-wie-ich
0
https://sites.google.com/site/hembelzomx/system/app/pages/sitemap/hierarchy
0
https://sites.google.com/site/hembelzomx/drei-nasenbaeren-tanzen-samba/der-misuk-anteil
0
https://sites.google.com/site/hembelzomx/2-seitig-ego-reality-co-x-omx
0
https://sites.google.com/site/hembelzomx/home/powerpowerpower-everywhere
0
https://sites.google.com/site/hembelzomx/home/it-ologie
0
https://sites.google.com/site/hembelzomx/das-es-ganz-sanft-weitergeht/1
0
https://sites.google.com/site/hembelzomx/-audio-files--sichtung
0
https://sites.google.com/site/hembelzomx/sex--drugs---our-2-beloved-mega-meta-monstaz/wer-piept-hier
0
https://sites.google.com/site/hembelzomx/
0
https://sites.google.com/site/hembelzomx/home/#up_embed_snippet=<script>+++(function(i,s,o,g,r,a,m){i[&st=e=AIHE3cDDD5F60BwS6zpy12VoLHcl%2F%2FliU6IlrRZ7sbywk%2FDFOqgfnkjV5LsoqfM0IRCTbyE1YvHgMae7BAXxYOkaHWQeN8cxftC7a0%2F8IpPJ5nA%2BOpRzbl%2B6jdyMulZF5e4yvi6rU99k&c=enterprise&rpctoken=-7154481241171161275
0
https://sites.google.com/site/hembelzomx/auszeichnung---2016---aug-sept-nov
0
https://sites.google.com/site/hembelzomx/in-der-hellhrigkeit-wohnen-in-deutschland--omx
0
https://sites.google.com/site/hembelzomx/home/fotos
0
https://sites.google.com/site/hembelzomx/home/great-shredder-day-2015
0
https://sites.google.com/site/hembelzomx/home/idolegollogy
0
https://sites.google.com/site/hembelzomx/too-high-too-low-and-still-not-low-enough/rythmus-geraeusch-spiel
0
https://sites.google.com/site/hembelzomx/home/ab-18-19-20-21
0
https://sites.google.com/site/hembelzomx/home/z---der-laestige-disclaimer
0
https://sites.google.com/site/hembelzomx/1-2-11-omx-neu-2016/montag-24-10
0
https://sites.google.com/site/hembelzomx/system/errors/NodeNotFound?suri=wuid:gx:4ec7adedcf13ce38
0
https://sites.google.com/site/hembelzomx/home/computerausfall-mai-2016
0
https://sites.google.com/site/hembelzomx/home/schlummernde-gewaltbereitschaftsheere
0
https://sites.google.com/site/hembelzomx/home/halbaktuelle-statistik---omx-website-zugriffe-nach-laendern-etc
0
https://sites.google.com/site/hembelzomx/drei-nasenbaeren-tanzen-samba/ein-zwei-weitere-schrittchen-richtung-drake-txt
0
https://sites.google.com/site/hembelzomx/sex--drugs---our-2-beloved-mega-meta-monstaz/hart-auf-hart-drogenentzuege-intern---omx
0
https://sites.google.com/site/hembelzomx/home/hembel
0
https://sites.google.com/site/hembelzomx/home/misukology/bassplay-sunday-28082016/bassplay-thursday-28082016/m3t----i-2345--stufenharmonik
0
https://sites.google.com/site/hembelzomx/meldungen-des-tages-montag-17102016/gut-gegen-boese-omx
0
https://sites.google.com/site/hembelzomx/home/snapshots
0
https://sites.google.com/site/hembelzomx/system/app/pages/subPages?path=/home
0
https://sites.google.com/site/hembelzomx/home/motylygo
0
https://sites.google.com/site/hembelzomx/drei-nasenbaeren-tanzen-samba/unwiederbringlich-draussen-onda-auf-s-falsche-v-pferd-gesetzt
0
https://sites.google.com/site/hembelzomx/1-2-11-omx-neu-2016/freitag-14-10-2016
0
https://sites.google.com/site/hembelzomx/drei-nasenbaeren-tanzen-samba/mein-blued-book
0
https://sites.google.com/site/hembelzomx/too-high-too-low-and-still-not-low-enough/gitarrenspiel
0
Jetzt fehlt nur noch die Ausgabe in eine Textdatei.

Code-Ergänzung

# Ausgabe des Linkhash in txt-Datei

open (LINKS, ">omx-sitemap.txt") or die $!;
   print LINKS map { $_, "\n" } keys %sitemap_links;
close (LINKS);

Auch dies ging wunderbarerweise in einem kleinen Rutsch - flutschiflutsch!

Output (Ausschnitt Screen)

https://sites.google.com/site/hembelzomx/too-high-too-low-and-still-not-low-enough/rythmus-geraeusch-spiel
https://sites.google.com/site/hembelzomx/home/#up_embed_snippet=<script>+++(function(i,s,o,g,r,a,m){i[&st=e=AIHE3cBbQ4%2BiNBYL2PwZKwADiDHbj7ITUuzkPvQ4vZWCHgBJ0NhhPsibhvcAnjIAtwO7P%2Fj5Utc44kBcUWnOlJjQAGuGGzeGP2Tgf69KBWCOZh3N61IlXsoMbAZjrAWElMxapj1K%2FWdh&c=enterprise&rpctoken=-184968815703660897
https://sites.google.com/site/hembelzomx/arbeitsplatz-in-e-kreislufen--omx
https://sites.google.com/site/hembelzomx/home/medikollorgii
https://sites.google.com/site/hembelzomx//
https://sites.google.com/site/hembelzomx/1-2-11-omx-neu-2016/freitag-14-10-2016
https://sites.google.com/site/hembelzomx/home/#up_embed_snippet=<script>+++(function(i,s,o,g,r,a,m){i[&st=e=AIHE3cDZWI%2FkP0%2FPj9aG4g2LhkubGaXIPYYK%2B1Str%2FDhkVoL5shjo6Uk4W4ENH8IT2iv520wZct1Csgl7I6H2dnyHO7u9pr4LRxycEKLVlOzRR3rmDMfUvdWzrlo5e2HBxyurbSa3CdY&c=enterprise&rpctoken=5175654251342041444
https://sites.google.com/site/hembelzomx/1-2-11-omx-neu-2016/dienstag-11-10-2016
https://sites.google.com/site/hembelzomx/1-2-11-omx-neu-2016/montag-17-10-2016

Output (Ausschnitt Datei)

Gottseidank, da fehlt noch was!
Wäre alles ganz perfekt, wäre es mir unheimlich vorgekommen ...
Es braucht immer mind. ein, zwei Korrekturen oder Ergänzungen, damit ich mich richtig drüber freuen kann ;-) .

(Ausschnitt darf entfallen!)

Es sind "nur" 112 ermittelte Unterseiten, wie in Geany anhand der geöffneten omx-sitemap.txt zu ersehen.

Was fehlt noch oder ist noch nicht zu Ende gedacht?
...
Logo!

Codebereich "# Programm" - Anfang

# Programm

foreach ( @tmp_links ) {
    if ( $sitemap_links{$_} == 0 ) {
        $text2grep = `lynx --dump -listonly '$_'`;
        print "\nDer Text:\n\n$text2grep\n\nHoldorido!!\n";

'$_' statt 'http://sites.google.com/site/hembelzomx/home/'

Ist ja klar, schließlich sollen die neuen Links nacheinander jeweils einmal, nicht der Startlink wieder und wieder ausgelesen werden.

Und nun ...

Output (Ausschnitt Datei)

1.473 Links gefunden! Das passt.
https://sites.google.com/site/hembelzomx/home/om-x-se/mm-tag-2015-omx-site--hembel--omx/mm-omx-site-omx
https://sites.google.com/site/hembelzomx/home/misukology/der-liebe-den-eignen-lieben-treu
https://sites.google.com/site/hembelzomx/home/toxtelogy/textmining/das-hembelsche-tomxtoskop-zm-11-beta/meta--mega-bauelemente/spracherkennung/cmu-sphinx/sphinx4-or-pocketsphinx/pocketsphinx/sphinxtrain
https://sites.google.com/site/hembelzomx/home/om-x-se/aussagen-kosmos-omx/eindeutige-aussagen-omx/absolute-variable-relative-und-irrelevative-aussagen-omx/hardtraining-ist-besser-schlechter-als-softtraining-it-depends-omx
https://sites.google.com/site/hembelzomx/home/snapshots
https://sites.google.com/site/hembelzomx/home/om-x-se/problemland-tuerkei-2015-omx/konflikt-knackpunkte-tuerkei-vs-russland-11-2015-omx/eine-frage-der-ehre-omx
https://sites.google.com/site/hembelzomx/home&service=jotspot
https://sites.google.com/site/hembelzomx/home/om-x-se/evolutionsschritt---die-eigene-schizophrenie-erkennen-omx
https://sites.google.com/site/hembelzomx/home/om-x-se/omx-omx/ein-weiterer-omx-omx-verbildlichungs-versuch/wo-ist-das-omx/omx-als-oberbegriff/selbsterhoehung-omx/rassismus-omx/fallbeispiel-dave-simbabwe-omx
https://sites.google.com/site/hembelzomx/home/om-x-se/typologie-omx-1/c-g-jungs-typenbeschreibung-omx/auf-jungs-typologie-fussende-typologien-omx/typen-code-deutscher-mtbi-omx/om-a-trix-der-mbti-typen-omx/persoenlichkeiten-omx/narzisstische-persnlichkeit--omx
https://sites.google.com/site/hembelzomx/home#up_embed_snippet=<script>+++(function(i,s,o,g,r,a,m){i[&st=e=AIHE3cBNVDgui5dF%2FChEYOa9211hm19tE7b8CIeLHDUx29zQsQ6l9ldpTP2SpGQ0wkhXGhwdt0%2Fk8fnRrzECyOQP%2BzpALxZ0BBwYAg2cUKbWG9rfiTHe9Cxd5SPpSsrprCCoT9hbGQCD&c=enterprise&rpctoken=6253852244571699297
https://sites.google.com/site/hembelzomx/home/toxtelogy/textmining/das-hembelsche-tomxtoskop-zm-11-beta/die-ausrichtung---strategien/ein-ding-ein-ding-btw-xperiences
https://sites.google.com/site/hembelzomx/home/om-x-se/unmoegliche-offenheit-bei-tabuthemen---angst-vor-was-oder-wem
https://sites.google.com/site/hembelzomx/home/misukology/marlena-on-the-wall
Das passt mir noch nicht:
https://sites.google.com/site/hembelzomx/home#up

Lässt sich aber easy durch ein
        if ( $_ !~ m/^https:\/\/sites\.google\.com\/site\/hembelzomx/
             || $_ =~ m/.*#.*/ )
           { $_ = "http://sites.google.com/site/hembelzomx/home/" };
beseitigen
.

Oder?

... [ test, test, test ] ...

Ja, ist wahr!

( Ehrlich zugegeben, ich brauchte zwei Versuche, bis es funzte (immer noch weit unter meinen sonstigen Durchschnittswerten beim Hembelz-Trial-&-Error-Programming. )

Output Textdatei (Ausschnitt) bzw. Eckdaten

208,5 kB

https://sites.google.com/site/hembelzomx/home/om-x-se/vorverurteilungskrebsgeschwuer-in-europa-omx/schubladisierungsdebilitaet-in-europa-usa-omx/gut-gemeint-ist-halb-verloren-omx
https://sites.google.com/site/hembelzomx/home/misukology/mm-tal-rec-schlucht
https://sites.google.com/site/hembelzomx/home/toxtelogy/textmining/das-hembelsche-tomxtoskop-zm-11-beta/tomxtoskop-projekte-in-naher-zukunft/omxedia
https://sites.google.com/site/hembelzomx/home/om-x-se/dhl-plus-hembel-gleich-katastrophe-omx
https://sites.google.com/site/hembelzomx/home/om-x-se/prophet-von-wem-was-omx/islmticws-omx/desch-co-omx/desch-co-b-omx/desch-co-c-omx/desch-co-d-omx/desch-co-e-omx/im-hadres-omx
https://sites.google.com/site/hembelzomx/home/om-x-se/wahrnehmung-omx/konstruktion-der-realitaet-in-der-vorstellung-omx-1/gestaltung-der-realitaet-durch-die-vorstellung-omx/aktive-gestaltung-der-realitaet-omx/spannweitendemonstration-august-september-2016/montag-19-09-2016-om-x-gung
https://sites.google.com/site/hembelzomx/home/toxtelogy/textmining/das-hembelsche-tomxtoskop-zm-11-beta/nussknacker-suite-11-11
https://sites.google.com/site/hembelzomx/drei-nasenbaeren-tanzen-samba/1s--2o--3p-trialogon/das-nicht-nicht-nicht---nicht-doch--trialogono-raeaetzulum/das-3objekt-riddleclewgum
https://sites.google.com/site/hembelzomx/home/om-x-se/intelligenz-omx/iq-omx/intelligente-menschen-haben-weniger-vorurteile---beattheprofquiz
https://sites.google.com/site/hembelzomx/system/app/pages/reportAbuse
https://sites.google.com/site/hembelzomx/home/om-x-se/ausbeutermentalitaet-in-d-omx/ausbeutung-in-der-medien--kunstwelt-in-d-omx
https://sites.google.com/site/hembelzomx/home/om-x-se/begriffs-un-schaerfe-n-omx
https://sites.google.com/site/hembelzomx/home/om-x-se/die-rosa-pluesch-durch-alles-blill
https://sites.google.com/site/hembelzomx/home/misukology/gitarren-tunings/regular-tunings/m3t-major-thirds-tuning/vertikal-spiel
https://sites.google.com/site/hembelzomx/home/om-x-se/hembel-sche-aufbauwissenschaft-omx/vernetzungen-omx
https://sites.google.com/site/hembelzomx/too-high-too-low-and-still-not-low-enough/gitarrenspiel/f1thtpt.png?attredirects=0
https://sites.google.com/site/hembelzomx/home/om-x-se/wahrnehmung-omx/konstruktion-der-realitaet-in-der-vorstellung-omx-1/gestaltung-der-realitaet-durch-die-vorstellung-omx/aktive-gestaltung-der-realitaet-omx/spannweitendemonstration-august-september-2016/mittwoch-28-09-2016
https://sites.google.com/site/hembelzomx/1-2-11-omx-neu-2016/samstag-22-10-2016&service=jotspot
https://sites.google.com/site/hembelzomx/home/toxtelogy

1.470 Zeilen

D'do'd'mit lasse mersch mol gud soi, wa?

Ich werde jetzt gleich die neue Sitemap an Google übermitteln, dann schau'n mer mal zwischen den Jahren, ob sich an der Statistik der Zugriffe iwas deutlich Wahrnehmbares geändert hat.

Bis dahin:
Prost & Ahoi!





PS:

Selbstverständlich würde auch die Auslagerung des "doppelten Codeausschnitts", der hier enthalten ist, in eine Subroutine gleich gut funzen. Übersichtlicher wäre es allemal - für Codeleser. Da ich das aber beherrsche und es hier nicht für so ultranötig halte, momentan (weil: liegt ja noch einiges Anderes zu tun an), darf sich daran jedfim ( wufim selbst Perl-LernerIn ist ) selbst mal versuchen.

Kommentare

Beliebte Posts aus diesem Blog

·

Es brennt.

Bye, bye Nord Stream 2!