Atualmente estou usando o navegador Brave. Tenho muitos favoritos e gostaria de baixá-los para uma pasta no meu PC, MAS como links individuais.
Como posso fazer isso?
Consegui exportar todos os meus favoritos, mas eles foram salvos como um único arquivo html. Talvez haja uma maneira de analisar o arquivo e salvar os links individualmente?
Responder1
Elaborei um script rápido do PowerShell para fazer isso para você. Você precisará atualizar $bookmarks_file
e $bookmarks_folder
apontar para onde precisa.
Infelizmente, isso só funciona no Windows e não vai te ajudar com o seu Mac, pois ele tem um formato de atalho diferente e não tenho um Mac para testar.
$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()
}
Explicação
$matches = Get-Content $bookmarks_file -Raw | Select-String -Pattern 'HREF="([^"]*)"[^>]*>([^<]*)<' -AllMatches | % { $_.Matches }
Esta linha lê os links e títulos dos links do
bookmarks.html
arquivo em uma matriz.foreach ($match in $matches)
irá examinar a matrizWrite-Host $match.Groups[1].Value' '$match.groups[2].Value
grava o URL e o título no console para referência$filename = $match.groups[2].Value
salva o título do favorito como nome do arquivo$invalidChars = [IO.Path]::GetInvalidFileNameChars() -join '' $re = "[{0}]" -f [RegEx]::Escape($invalidChars) $filename = $filename -replace $re
substitui quaisquer caracteres ilegais no nome do arquivo$location = "$($bookmarks_folder)\\$($filename).lnk"
cria o caminho completo, incluindo o diretório$WshShell = New-Object -ComObject WScript.Shell $Shortcut = $WshShell.CreateShortcut("$location") $Shortcut.TargetPath = $match.Groups[1].Value $Shortcut.Save()
cria o atalho usando o caminho do arquivo gerado e a URL