2016-11-29 10 views
0

私は何年も前から収集してきた数多くのブックマークをカテゴリ、タイプ、説明などの追加情報を含む検索可能なテーブルに入れたいと思っています。ブックマークをエクスポートしてテーブルにインポートするにはどうすればよいですか?

初めての試みは、 JSONファイルを作成してからDataTablesプラグインを使用して表示すると、面倒で時間がかかりました。

2番目の試みは、Wordpressを使用してこれを行うには高度なカスタムフィールドを使用することでしたが、やはりかなり面倒です。

明らかに、私はHTMLファイルとしてブックマークをエクスポートすることができます。私は自分のニーズに合わせてこのファイルを編集しスタイリングすることを検討していますが、絶対に大量であり、私はこのファイルのCSV変換を使用して、さまざまなWordpressプラグインにインポートしてみました。このプラグインは、この正確な機能を提供してavailを知っています。私はまた、firefoxのバックアップと似たようなことをやってみましたが、そのバックアップはJSONファイルにエクスポートされますが、もう運はありません。

いくつかの情報を手作業で入力する必要があることは知っていますが、作業負荷を約3分の1に削減しようとしています。私はこれについて間違った方法をとっていますか?それも可能ですか?そこにいる誰かが同じことをやろうとしていて、どうやってそれについて行ったのか不思議です。

+0

ブックマークをエクスポートするブラウザはありますか? – TechnoCrat

+0

クロムですが、それらのすべてがhtmlにエクスポートされます。私はそれを知ることができます。また、firefoxもJSONでバックアップします。私は、私が欲しいことをするプラグインを探していました - これまでの運はありません。 – JonHerbert

+0

はい同意します。あなたがこれを達成する1つの方法は、エクスポートされたhtmlファイルを解析し、それからすべてのハイパーリンクとブックマークテキストを抽出することです。 – TechnoCrat

答えて

2

本当にありがとうございました。基本的に、私が行ったことは、エクスポートされたブックマークをHTMLとして保存し、空のテーブルを持つ単純なページを作成することです。その後、私のJSはこれを行います。

基本的に
$(function() { 
    var example = $("#example").DataTable({ 
     "responsive": true, 
     "columns": [ 
      { 
       "title": "Title", 
       "data": "text" 
      },{ 
       "title": "Date added", 
       "data": "date", 
       "render": function(d){ 
        return moment(d, "X").format("DD/MM/YYYY"); 
       } 
      },{ 
       "title": "URI", 
       "data": "href", 
       "render": function(d){ 
        return $("<a></a>",{ 
         "text": d, 
         "href": d 
        }).prop("outerHTML"); 
       } 
      } 
     ], 
     "initComplete": function(settings, json) { 
      $.get("bookmarks_12_2_16.html", function(data) { 
       $(data).find("dl").children("dt").children("a").each(function(k, v){ 
        if(!~~$(v).attr("href").indexOf("http")){ 
         example.row.add({ 
          "href": $(v).attr("href"), 
          "text": $(v).text(), 
          "date": $(v).attr("add_date") 
         }); 
        } 
       }); 
       example.draw(); 
      }); 
     } 
    }); 
}); 

それgetのHTMLとdldt Sを反復処理し、hrefhttphttpsであれば、それは(正しい日付でテーブルに追加します私はイギリスにいるので、私はmomentjsを使っています。希望が役立ちます。

+0

あなたは命の恩人です!私は今日これを試してみるつもりですが、それを読んでいくうちに、それがどのように機能するかを見ることができます。幸運にも私は英国にいるのであまり変わらないはずです。本当にありがとう! – JonHerbert

+0

魅力的な作品!どうもありがとうございました! – JonHerbert

1

あなたは、以下の使用してChromeからエクスポートされたファイルを解析することができます:ここで

私はブックマークからURLとリンクを解析して抽出するためにSAXパーサを使用していました。

以下の3つのクラスはxmlを解析し、ブックマークのURLのタイトルとリンクを表示します。

あなたはcsvにエクスポートすることができます。あるいは、より良い方法でそれを使用して、テーブルを動的に生成して検索することができます。

import javax.xml.parsers.SAXParser; 
import javax.xml.parsers.SAXParserFactory; 
import org.xml.sax.SAXException; 
import org.xml.sax.XMLReader; 

public class BookmarkReader { 

    public static void main(String argv[]) { 

     try { 
      SAXParserFactory factory = SAXParserFactory.newInstance(); 
      SAXParser saxParser = factory.newSAXParser(); 

      XMLReader xmlReader = saxParser.getXMLReader(); 

      try { 
       xmlReader.setFeature(
         "http://apache.org/xml/features/continue-after-fatal-error", 
         true); 
      } catch (SAXException e) { 
       System.out.println("error in setting up parser feature"); 
      } 

      xmlReader.setContentHandler(new ContentHandler()); 
      xmlReader.setErrorHandler(new MyErrorHandler()); 
      xmlReader.parse("C:\\Users\\chetankumar.p\\Documents\\bookmarks_12_2_16.html"); 

     } catch (Throwable e) { 
      System.out.println(e.getMessage()); 
     } 

    } 
} 


import java.util.ArrayList; 
import java.util.List; 
import org.xml.sax.Attributes; 
import org.xml.sax.SAXException; 
import org.xml.sax.helpers.DefaultHandler; 

public class ContentHandler extends DefaultHandler { 

    class Bookmark { 

     public String title; 
     public String href; 
    } 

    Bookmark bookmark; 
    List<Bookmark> bookmarks = new ArrayList<>(); 

    @Override 
    public void endDocument() throws SAXException { 
     for (Bookmark bookmark1 : bookmarks) { 
      System.out.println("title : " + bookmark1.title); 
      System.out.println("title : " + bookmark1.href); 
     } 
    } 

    @Override 
    public void startElement(String uri, String localName, 
      String qName, Attributes attributes) 
      throws SAXException { 

     if (qName.equalsIgnoreCase("a")) { 
      bookmark = new Bookmark(); 
      System.out.println("href ::: " + attributes.getValue("HREF")); 
      bookmark.href = attributes.getValue("HREF"); 
     } 
    } 

    @Override 
    public void endElement(String uri, String localName, String qName) throws SAXException { 
     if (qName.equalsIgnoreCase("a")) { 

      bookmarks.add(bookmark); 
      bookmark = null; 
     } 
    } 

    @Override 
    public void characters(char[] ch, int start, int length) throws SAXException { 
     if (bookmark != null) { 
      bookmark.title = new String(ch, start, length); 
     } 
    } 

} 


import org.xml.sax.ErrorHandler; 
import org.xml.sax.SAXException; 
import org.xml.sax.SAXParseException; 

public class MyErrorHandler implements ErrorHandler { 

    private String getParseExceptionInfo(SAXParseException spe) { 
     String systemId = spe.getSystemId(); 

     if (systemId == null) { 
      systemId = "null"; 
     } 

     String info = "URI=" + systemId + " Line=" 
       + spe.getLineNumber() + ": " + spe.getMessage(); 

     return info; 
    } 

    public void warning(SAXParseException spe) throws SAXException { 
     System.out.println("Warning: " + getParseExceptionInfo(spe)); 
    } 

    public void error(SAXParseException spe) throws SAXException { 
     String message = "Error: " + getParseExceptionInfo(spe); 
     System.out.println(message); 
    } 

    public void fatalError(SAXParseException spe) throws SAXException { 
     String message = "Fatal Error: " + getParseExceptionInfo(spe); 
     System.out.println(message); 
    } 
} 
+0

これは素晴らしく、残念ながら私はJavaをまったく知りません!私はおそらく指定する必要があります。しかし、私はそこに起こっていることのいくつかを読むことができ、私はそれがどのように動作するかを見ることができます - 私は思う。これでCSVファイルが作成されますか?そして、これを使ってクロムから輸出すると言うと、これを別のプログラムとして実行しますか?申し訳ありませんが、それはJavaになると、私は全然ノブです。私はこれがJavaの観点から正しいと想像しても、あなたにチックを与えています。ありがとうございました! – JonHerbert

+0

ChromeはファイルをHTMLとしてエクスポートし、ファイルを開くとxml形式になります。そのファイルはこのプログラムで入力されます。このプログラムはJavaコンソールでのみ表示されます。もしあなたがcsvとしてエクスポートしたいのであれば、私はこれを再び更新します。 – TechnoCrat

+0

私はJSを理解してDataTablesを使用するので、私はannoyingmouseのソリューションに行きますが、あなたは答えがJavaでこの問題に来る人に役に立つかもしれません。 – JonHerbert

0

Firefoxにブックマークを取得し、SQLiteデータベースから直接エクスポートします。 。 。これを行う方法を理解するまでにはしばらく時間がかかりました:.xlsm [SOLVED]にブックマーク。 。 。 https://www.mrexcel.com/forum/excel-questions/1040778-firefox-bookmarks-xlsm-solved.html#post4995974

Chromeを使用する場合は、同様の方法があります。

+0

あなたはあなたの答えにリンクの重要な部分を入れますか?私たちは外部のコンテンツにのみ依存するべきではありません... –

+0

確かに!私は別の郵便でそれをしなければならないことを知っているので、私は改行をすることができます。 Mr. Excelの私の投稿のコピーがあります。 。 。 – sludge705x

+0

なぜ私の新しい投稿をこの1つ上に置くのか分かりません – sludge705x

1

Firefoxのブックマーク[SOLVED]


を.xlsmする私は、Firefoxの外やExcelに自分のブックマークを取得する方法を考え出しました。マクロがそれらを処理し、他のマクロがワークシートの周りにいます。 012).Firefox、2.)SQLite3、3.)DOS、4.)Excel VBA、5。)NirCmd(オプション)

ブックマークを分類し、並べ替えボタンをクリックするだけです。

これら2つのPDFはBATファイルのコードを提供し、マクロのパスを設定する方法を説明しています。詳細は、xlsmのVBAに記載されています。これらの3つのファイルはGoogleドキュメントにあります。

私はこれを共有したいと思っていました。それはクールだから他の人には役立つかもしれません。 。 。誰かが私が持っているものを改善したり、私にいくつかのアイデアを与えることができます。 。 。多分このポストは開いたままにすることができます。


bookmarks-to-CSV.pdf。 。 。この最初のページには、ブックマークを.CSVファイルにするために必要な情報がすべて表示されます(実際のブックマークには何も行われません。 。 。次に、次のいくつかのページでは、何が起こっているのかについて詳しく説明します。 。 。 https://drive.google.com/open?id=1xYWPQtijqCzk-1nzTsTb0ZUVKYJNFokR

カスタムUI Editor.pdf。 。 。サポートする情報、および設定するBATファイルコード。 。 。 https://drive.google.com/open?id=1G2AWBamOrbAo2ZNDtUyYdzegjKzz34DA

bookmarks-p.xlsm。 。 。 Google Docsのプレビューはそれほど素晴らしいものではありません。いくつかのサポート情報は最初の4つのワークシートにあります。ブックマークは5番目のワークシート(下部のタブを参照)にあります。 。 。 https://drive.google.com/open?id=1ZOuOBkdJjMx1T4xMUNG7sf6MDWurUqqy

関連する問題