Como salvar os favoritos do navegador individualmente em uma pasta do PC?

Como salvar os favoritos do navegador individualmente em uma pasta do PC?

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_filee $bookmarks_folderapontar 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.htmlarquivo em uma matriz.

  • foreach ($match in $matches)irá examinar a matriz

  • Write-Host $match.Groups[1].Value' '$match.groups[2].Valuegrava o URL e o título no console para referência
  • $filename = $match.groups[2].Valuesalva o título do favorito como nome do arquivo
  • $invalidChars = [IO.Path]::GetInvalidFileNameChars() -join '' $re = "[{0}]" -f [RegEx]::Escape($invalidChars) $filename = $filename -replace $resubstitui 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

informação relacionada