У меня есть более 100 000 закладок в Firefox. Я хочу сохранить их в базе данных контактов, чтобы не потерять их, а также упростить управление.
Размер HTML-файла составляет 55мег.
Как бы я это сделал?
По умолчанию экспорт закладок представляет собой файл JSON.
Поэтому, если у вас есть навыки разработки, я бы предложил базу данных NoSQL, которая обрабатывает структурированные данные JSON. Apache CouchDB - такой инструмент. Он довольно легкий с точки зрения использования ресурсов, я запускаю его как службу на своем ноутбуке с Windows 7 и могу подтвердить, что он не мешает.
Node.js - хороший способ написания внешних интерфейсов для него, но есть много других вариантов, включая встроенную веб-консоль - Futon (http://localhost:5984/_utils/
). Здесь есть руководство по началу работы.
ОБНОВЛЕНИЕ: Чтобы добавить свои закладки в пустую базу данных с именем "ff-bookmarks", если у вас установлен CURL, вы можете использовать следующую команду (я использую приглашение Windows cmd здесь):
curl -X POST http://localhost:5984/ff-bookmarks -d @bookmarks-2014-01-20.json -H "Content-Type:application/json"
Символ @
говорит curl, что вы хотите загрузить файл со следующим именем. -H требуется, чтобы указать curl правильный тип содержимого для передачи в CouchDB. Использование POST означает, что Couch создаст внутренний UID для записей.
Вы должны получить ответ, такой как:
{"ok":true,"id":"349eb4f32fc6f0c85cbcc473160018dd","rev":"1-31384010a78f57165177d9bfb6cd1b53"}
Теперь вы можете проверить содержимое с помощью Futon.
ОБНОВЛЕНИЕ 2: Вот функция карты, которую вы можете использовать, которая начинает распаковывать структуру и может дать вам представление о том, что делать дальше:
function(doc) {
for each (child in doc.children) {
if (child.title == "Bookmarks Menu") {
for each (child1 in child.children) {
if (child1.title) {
emit(child1.title, child1);
}
}
}
}
}
И просто отметим, что CouchDB позволяет указывать вывод не просто как JSON! Вы можете легко определить проектный документ, который будет возвращать вывод в виде XML или HTML по вашему желанию.