2010-11-18 5 views
3

Ich möchte alle URLs aus meiner .json Lesezeichen-Sicherung, die firefox erstellt und eine .txt Datei ausgeben scrape.Schnelle und schmutzige Möglichkeit, eine Mozilla Firefox-JSON-Datei zu analysieren

Hier ist ein Beispiel für eines der Objekte in der Datei:

{"index":1,"title":"Bookmarks Toolbar","id":3,"parent":1,"dateAdded":1219177758531250,"lastModified":1288873459187000,"annos":[{"name":"bookmarkProperties/description","flags":0,"expires":4,"mimeType":null,"type":3,"value":"Add bookmarks to this folder to see them displayed on the Bookmarks Toolbar"}],"type":"text/x-moz-place-container","root":"toolbarFolder","children":[{"title":"","id":25,"parent":3,"dateAdded":1224693644437500,"lastModified":1236888979406250,"annos":[{"name":"placesInternal/GUID","flags":0,"expires":4,"mimeType":null,"type":3,"value":"{f6066e21-10ff-46a2-af7a-2891f8dca345}0"}],"type":"text/x-moz-place","uri":"http://www.google.com/"} 

Diese Objekte sind durch Kommas getrennt und sollte alle enthalten mindestens ein Element, das eine Zeichenfolge, deren Wert enthält, ist die URL der das Lesezeichen.

Hier ist ein Beispiel, was die .txt Datei in ihm haben würde:

http://www.google.com 
http://www.yahoo.com 
http://www.etc.com` 

Idealerweise Ich bin daran interessiert, wenn diese unter Verwendung irgendwelcher Scripting-Tool innerhalb eines generischen Windows XP „Umwelt aus gezogen werden kann ".

Wenn Windows kann es nicht schneiden, was wäre die schnellste & einfachste Lösung für diese?

Gibt es eine Website oder ein Programm, die Mustererkennung oder Regex tun können, um die Datei zu analysieren, suche ich & ersetzen, bevor ich etwas wie Active Perl oder Strawberry Perl installieren und ein Skript dafür schreiben.

+0

XMLSpy (http://www.altova.com/xmlspy).html) kann JSON zu XML Konvertierungen ziemlich einfach erreichen, und ich nehme an, dass ein folgender XML zu TXT Schritt auch ziemlich trivial wäre. XMLSpy ist nicht billig, aber die Testversion ist komplett. – Andrew

+0

Hier ist eine Seite, die die JSON-Funktionalität von XMLSpy beschreibt: http://www.altova.com/xmlspy/json-editor.html – Andrew

+0

würde dies auch Live Bookmarks (RSS) sowie normale Lesezeichen beinhalten? – Thufir

Antwort

0

Wenn Sie Excel haben, ist es wahrscheinlich einfach einen Text in Spalten zu tun geteilt

auf ". Da das Format (Reihenfolge der Felder) immer gleich ist, sollten Sie die URLs irgendwo in der Nähe der letzten Spalte haben.

+0

ich wollte das versuchen, aber ich habe noch nicht Excel auf diesem Computer - ich formatierte es vor ein paar Tagen und ich bin nur auf der Suche nach einer alternativen Lösung, die die geringste Menge von 3rd Party Intervention erfordert – CheeseConQueso

+0

* seufz * The nur andere ziemlich einfache Sache ist es, sed (sehr altes Paket von hier: http://unxutils.sourceforge.net/) zu verwenden. Sie können etwas wie 'sed' s /.* "uri": "\\ ([^"] \\) ". */\ 1/'bookmarks-file.txt'. –

+0

ein Text für Spalten, die auf a Lesezeichen-Datei wrirrender eine ziemlich große Anzahl von Spalten, weil die gesamte JSON-Datei ist ein 1-Liner. –

1

Ein andere Art, wie ich die Methode auf der folgenden Website gefunden:

http://forums.mozillazine.org/viewtopic.php?f=38&t=1057265&sid=66d981cc79d1ff63644e0cdd5b665a37

Im Grunde tun Sie Folgendes:

(1) mit dem folgenden als Standort ein Firefox-Lesezeichen erstellen:

javascript:(function(){var E=document.getElementsByTagName('PRE')[0],T=E.innerHTML,i=0,r1,r2;t=new Array();while(/("uri":"([^"]*)")/g.exec(T)){r1=RegExp.$1;r2=RegExp.$2;if(/^https?:/.exec(r2)){t[i++]='['+(i)+']:<a href='+r2+'>'+r2+'<\/a>';}}with(window.open().document){for(i=0;t[i];i++)write(t[i]+'<br>');close();}})(); 

(2) Öffnen Sie eine leere Registerkarte firefox.

(3) ziehen Sie Ihre Firefox-JSON-Datei in die leere Registerkarte, dies sollte die JSON-Datei öffnen.

(4) liest Ihre Lesezeichen, das Sie in Schritt erstellt 1.

(5) Sie sollten eine Liste der "klickbare URLs" für alle Ihre Lesezeichen.

+0

klingt wie ein interessanter Ansatz .... erkunde es, danke – CheeseConQueso

+0

hängt nur ff. Ich habe eine 3MiB Lesezeichen-Datei. –

0

Ich habe das nicht getestet.

HINWEIS: Überprüfen/korrigieren Sie alle folgenden Dateipfade, damit sie zu Ihrem System passen.

@Echo Off 
Rem FFExportBookmarks.bat 

SetLocal EnableDelayedExpansion 
Set JSONFile="%APPDATA%\Mozilla\Firefox\Profiles\xyz42pdq.default\bookmarkbackups\Bookmarks.json" 
Set FavOut="%USERPROFILE%\My Documents\FFBookmarks.txt" 
Set JSONTemp="%Temp%\JSONTemp.txt" 
Echo.> %JSONTemp% 
Set JSONTemp1="%Temp%\JSONTemp1.txt" 
Echo.> %JSONTemp1% 

For /f "UseBackQ Delims=" %%N In ('Type %JSONFile%') Do (
    Set JSONInput=%%N 
Rem Filter double " and other delimiters 
    Set JSONInput=!JSONInput:"=! 
    Set JSONInput=!JSONInput: =! 
    Set JSONInput=!JSONInput:^,= ! 
    Set JSONInput=!JSONInput:[= ! 
    Set JSONInput=!JSONInput:]= ! 
    Set JSONInput=!JSONInput:{= ! 
    Set JSONInput=!JSONInput:}= ! 

    For %%K In (!JSONInput!) Do For /f "Tokens=1,2 Delims=:" %%X In ("%%K") Do (
    If /i "%%X"=="uri" Echo %%Y >> %FavOut% 
) 
) 

Start "" %FavOut% 

Es war nicht sehr schnell, aber es ist viel dreckig!

Verwandte Themen