Я сейчас использую браузер 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-адрес