Как сохранить закладки браузера по отдельности в папку на ПК?

Как сохранить закладки браузера по отдельности в папку на ПК?

Я сейчас использую браузер Brave. У меня много закладок, и я хотел бы загрузить их в папку на моем ПК, НО как отдельные ссылки.

Как мне этого добиться?

Мне удалось экспортировать все мои закладки, но они сохранены как один файл html. Возможно, есть способ проанализировать файл и сохранить ссылки по отдельности?

решение1

Я собрал быстрый скрипт PowerShell, чтобы сделать это для вас. Вам нужно будет обновить $bookmarks_fileи $bookmarks_folderуказать, куда вам нужно.

К сожалению, это работает только в Windows и не поможет вам с Mac, так как там другой формат сочетаний клавиш, а у меня нет Mac, чтобы проверить.

$bookmarks_file = "bookmarks.html"
$bookmarks_folder = "C:\Users\Someone\Desktop\Shortcuts"
$matches = Get-Content $bookmarks_file -Raw | Select-String -Pattern 'HREF="([^"]*)"[^>]*>([^<]*)<'  -AllMatches | % { $_.Matches }

foreach ($match in $matches) {
    Write-Host $match.Groups[1].Value' '$match.groups[2].Value
    $filename = $match.groups[2].Value
    $invalidChars = [IO.Path]::GetInvalidFileNameChars() -join ''
    $re = "[{0}]" -f [RegEx]::Escape($invalidChars)
    $filename = $filename -replace $re
    $location = "$($bookmarks_folder)\\$($filename).lnk"
    $WshShell = New-Object -ComObject WScript.Shell
    $Shortcut = $WshShell.CreateShortcut("$location")
    $Shortcut.TargetPath = $match.Groups[1].Value
    $Shortcut.Save()
}

Объяснение

  • $matches = Get-Content $bookmarks_file -Raw | Select-String -Pattern 'HREF="([^"]*)"[^>]*>([^<]*)<' -AllMatches | % { $_.Matches }

    Эта строка считывает ссылки и заголовки ссылок из bookmarks.htmlфайла в массив.

  • foreach ($match in $matches)просмотрит массив

  • Write-Host $match.Groups[1].Value' '$match.groups[2].Valueзаписывает URL и заголовок в консоль для справки
  • $filename = $match.groups[2].Valueсохраняет название избранного как имя файла
  • $invalidChars = [IO.Path]::GetInvalidFileNameChars() -join '' $re = "[{0}]" -f [RegEx]::Escape($invalidChars) $filename = $filename -replace $reзаменяет все недопустимые символы в имени файла
  • $location = "$($bookmarks_folder)\\$($filename).lnk"создает полный путь, включая каталог
  • $WshShell = New-Object -ComObject WScript.Shell $Shortcut = $WshShell.CreateShortcut("$location") $Shortcut.TargetPath = $match.Groups[1].Value $Shortcut.Save()создает ярлык, используя сгенерированный путь к файлу и URL-адрес

Связанный контент