(gelöst) aus exportierten vivaldi bookmarks Liste von URL

Du suchst ein Programm für einen bestimmten Zweck?
Antworten
michaa7
Beiträge: 4927
Registriert: 12.12.2004 00:46:49
Lizenz eigener Beiträge: MIT Lizenz

(gelöst) aus exportierten vivaldi bookmarks Liste von URL

Beitrag von michaa7 » 30.01.2022 12:50:12

In Vivaldi kann man die bookmarks nur komplett als html exportieren. Ein einzelner Eintrag sieht dann in etwa so aus:
<DT><A HREF="http://debianforum.de/forum/" ADD_DATE="1499716996" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABKUlEQVQ4jcWTMW6DQBBFn5EbKykDTQqjSDSuYnGA7CEMrbkJ5CTYLXZPyXIAlI4mUqBJY9ImKTfVWus1VpwqU612/vyZv392ghV74rVL4R9AuAgBMCClB3Ig7lcUWxPv2MU3vGQKkQF4uNLDlQBfBMkdh82eeG03PRaXBJ1EqBrSsXxLVEmEMkmOEyxQCcAHXvIEzzbBimLbMtmY2BN2iVANYW7eN4R5S1SZ9y1RVRJ0J1JqSCVC2cVjUjVWEzgAt4T+N++9CXqj8e3CMexUH2bc+/B61lHbqt9lxoM/h35h2jkmoSWqbDdKgs7W7wAMxL3uphMDO+kSCW2tRKg5j/0ny8xeJgB2UNlT6OlqSC8ukKn10hJdHQ1hfubxv5CMbttfQ3+u3x7wB7FWkUSSRmSEAAAAAElFTkSuQmCC">debianforum.de/forum/</A>
Ich möchte dass von jedem dieser Einträge nur die URL übrig bleibt, immer in eine neue zeile, hier also:
Ich benötige also nur den <URL> Teil zwischen den Anführungszeichen, der immer gleiche Vorspan könnte zur Filterung auf der CL dienen:
<DT><A HREF="http://debianforum.de/forum/"

Der Vorspan ist pro URL immer gleich, der ganze Rest soll eh' weg.


Da gibt es doch bestimmt ne schlaue Kommandozeile die ich auf den als text geöffneten html code loslassen kann. Verrät mir die jemand?
Zuletzt geändert von michaa7 am 31.01.2022 18:14:35, insgesamt 1-mal geändert.
gruß

michaa7

-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)

rodney
Beiträge: 373
Registriert: 09.12.2016 04:15:59

Re: aus exportierten vivaldi bookmarks Liste von URL

Beitrag von rodney » 30.01.2022 13:06:08

Quick'n'Dirty mit sed:

Code: Alles auswählen

sed 's/^[^=]*="//;s/".*//'

inne
Beiträge: 3289
Registriert: 29.06.2013 17:32:10
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

Re: aus exportierten vivaldi bookmarks Liste von URL

Beitrag von inne » 30.01.2022 13:46:15

Du könntest es mit xpath -n -q -e '//a/@href' ~/Downloads/bookmarks.html probieren. Hier mit Firefox meckert es aber an, dass das XML kaputt ist :x
Bei xmlstarlet dasselbe, dort weiss ich nicht wie und ob man das abstellen kann, robuster macht.

michaa7
Beiträge: 4927
Registriert: 12.12.2004 00:46:49
Lizenz eigener Beiträge: MIT Lizenz

Re: aus exportierten vivaldi bookmarks Liste von URL

Beitrag von michaa7 » 30.01.2022 14:06:13

@ rodney

fast ... da bleibt noch etwas Spreu übrig, weil die Bookmarks, was ich oben nicht weiter erwähnt habe, natürlich in (sub-) Ordnern abgelegt sein können:
aber das liese sich bestimmt noch irgendwie herausfgiltern?

Ich habe mittlerweile ein funktionierende Lösung gefunden (ergooglt):
grep -Eo '\"https?:\/\/[^"]+\"' quelle-html.txt > ziel.txt
Tut haarscharf was es soll.

Aber es gäbe dennoch Verbesserungspotential. Obiges filtert ja *alle* URLs aller Bookmarks, weil ich nur alle Bookmarks komplett exportieren kann. Die URL Liste möchte ich aber auf einen Ordner beschränken. Das ginge zwar per viel Suchen und viel Löschen, ist aber bei vielen bookmarks sehr unübersichtlich und umständlich. Aber vielleicht läßt sich das ja im ersten Schritt entsprechend grepen:

Das ist der entscheidende Teil der kompletten struktur:
<DT><H3 ADD_DATE="1643502309" LAST_MODIFIED="1643510407">gesuchter Ordner</H3>
<DL><p>
<DT><A HREF="https://gesuchte URL...)
...
...
</DL>
IDEAL (falls das jemand hinbekommt) wäre es ich könnte in den Bookmarks erst nach "gesuchter Ordner" springen (das läßt sich mit "gesuchter Ordner</H3>" grepen) und oben zitierten URL-Filter ausschließlich auf den nächsten folgenden Absatz ( <p> ) von <DL><p> Inhalt </DL> anwenden ... (alle vorherigen Absätze und die weiteren auf den ersten hier folgenden sollen also verworfen werden)

Bekommt das jemand hin?

;-)
gruß

michaa7

-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)

tobo
Beiträge: 2347
Registriert: 10.12.2008 10:51:41

Re: aus exportierten vivaldi bookmarks Liste von URL

Beitrag von tobo » 30.01.2022 18:42:26

michaa7 hat geschrieben: ↑ zum Beitrag ↑
30.01.2022 14:06:13
IDEAL (falls das jemand hinbekommt) wäre es ich könnte in den Bookmarks erst nach "gesuchter Ordner" springen (das läßt sich mit "gesuchter Ordner</H3>" grepen) und oben zitierten URL-Filter ausschließlich auf den nächsten folgenden Absatz ( <p> ) von <DL><p> Inhalt </DL> anwenden ... (alle vorherigen Absätze und die weiteren auf den ersten hier folgenden sollen also verworfen werden)
Das sollte alle HREF-URLs zwischen der Zeile mit MARKER und dem nächsten </DL> aus einer bookmarks.html-Datei listen:

Code: Alles auswählen

$ MARKER="gesuchter Ordner"; sed -n "/<DT><H3.*${MARKER}<\/H3>/,/<\/DL>/s/.*HREF=\"\([^\"]*\)\".*/\1/p" bookmarks.html

michaa7
Beiträge: 4927
Registriert: 12.12.2004 00:46:49
Lizenz eigener Beiträge: MIT Lizenz

Re: aus exportierten vivaldi bookmarks Liste von URL

Beitrag von michaa7 » 31.01.2022 17:35:49

... rattenscharf ... funktioniert. Vielen Dank!

Klitzekleine Anmerkung zu "MARKER", und das soll nur ein Hinweis sein:

Der gesuchte Ordner war in diesem Fall das Wort "ok" (ich hatte dorthin vorab die Links verschoben die aus einer großen Anzahl von weiteren Links die wirklich interessanten waren). Offenbar springt MARKER auch dann auf "ok" (genauer ok</H3>) an wenn vor "ok" noch irgendetwas steht, wie in "notebook" ;-)

Nicht weiter schlimm und da schau ich mir die regexe mal an ... mal schaun ... oder eben Löschen per Hand.

Danke nochmals. Die Lösung mildert die bescheidene Exportqualität für die Bookmarks doch entscheidend ab.
gruß

michaa7

-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)

tobo
Beiträge: 2347
Registriert: 10.12.2008 10:51:41

Re: aus exportierten vivaldi bookmarks Liste von URL

Beitrag von tobo » 31.01.2022 17:56:30

Wenn es so ist wie ich denke, dann war das einfach schlampig von mir geschrieben. Es reicht wohl das führende > in die RegEx aufzunehmen und dann gibt es auch einen Unterschied zwischen >ok< und >notebook<. So soltte es stimmen:

Code: Alles auswählen

$ MARKER="gesuchter Ordner"; sed -n "/<DT><H3.*>${MARKER}<\/H3>/,/<\/DL>/s/.*HREF=\"\([^\"]*\)\".*/\1/p" bookmarks.html

michaa7
Beiträge: 4927
Registriert: 12.12.2004 00:46:49
Lizenz eigener Beiträge: MIT Lizenz

Re: aus exportierten vivaldi bookmarks Liste von URL

Beitrag von michaa7 » 31.01.2022 18:14:05

Ja, das funktioniert nun exakt so wie es soll. Super. Danke.

Ich habe mit Hilfe von Google noch eine andere funktionierende Lösung gefunden, aber vermutlich unnötig kompliziert:
MARKER="\bgesuchter Ordner\b"; sed -n "/<DT><H3.*${MARKER}<\/H3>/,/<\/DL>/s/.*HREF=\"\([^\"]*\)\".*/\1/p" bookmarks.html
Kommt zum gleich Ergebnis.

EDIT:

Klar, deine ist einfacher und schlüssiger. Habe jetzt verstanden was "*" bzw "*>" im Match unterscheidet. Und ich verstehe nichteinmal warum meine überhaupt funktioniert ;-)
Ok, word boundary matcht mit erstem oder letztem word character
gruß

michaa7

-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)

Antworten