Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: Linux Forum Linux-Web.de. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

11.10.2005, 20:07

sed - URLs aus HTML extrahieren

Ich bin am verzeifeln...
benutze zum ersten Mal sed (und Linux hab ich auch noch nich so viel mit gemacht...)
versuche schon seit Stunden, mit sed URLs aus HTML zu extrahieren. Genau: aus der Google-Rückgabeseite zu einer Suchanfrage eine Textdatei zu erstelln, die ausschließlich die Links (nur http://xxx.xxx) in der Rankingreihenfolge zu speichern.

Folgendes steht in meinem Script:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
# durch newline getrennte tags zusammensetzen
:join
/<[^>]*$/ { N; s/[ *]\n[ *]/ /; b join; }

# URL ausgeben, löschen
:loop
h
s/.*<p class=g><a href="\([^"]*\)".*$/\1/p
g
s/\(.*\)<p class=g><a href="\([^"]*\)".*$/\1/
t loop


So, als Erebnis gibt er alle URLs die gewünscht sind aus - allerdings nicht in der Reihenfolge in der sie in der HTML Datei vorkommen.

Irgendwie verstehe ich nicht so richtig, wie sed funktioniert...
als alternative Loop-Schleife hatte ich mir mal folgendes gedacht:

Quellcode

1
2
3
4
5
6
:loop
h
s/.*<p class=g><a href="\([^"]*\)".*$/\1/p
g
s/.*<p class=g><a href="[^"]*"/ /
t loop


Dabei kommen jetzt nicht mehr alle URLs raus, dafür aber einige doppelt - keine Ahnung, ich verstehe es nicht.

Kann mir da jemand weiterhelfen?

Thema bewerten