Skip to content

Instantly share code, notes, and snippets.

@AdamDimech AdamDimech/PDF_Grabber.ps1
Last active Mar 11, 2019

What would you like to do?
Download all PDF's from a web page via PowerShell
# More information at
function Grab-PDFs {
[Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") | Out-Null
$browse = New-Object System.Windows.Forms.FolderBrowserDialog
$browse.SelectedPath = "C:\"
$browse.ShowNewFolderButton = $false
$browse.Description = "Select a directory"
$loop = $true
if ($browse.ShowDialog() -eq "OK")
$loop = $false
cd $browse.SelectedPath
#Scrape Web Page for PDFs
$psPage = Invoke-WebRequest ""
$urls = $psPage.ParsedHtml.getElementsByTagName("A") | ? {$_.href -like "*.pdf"} | Select-Object -ExpandProperty href
$urls | ForEach-Object {Invoke-WebRequest -Uri $_ -OutFile ($_ | Split-Path -Leaf)}
Write-Host "... PDF downloading is complete."
[System.Windows.Forms.MessageBox]::Show("Your PDFs have been downloaded.", "Job Complete")
} else
$res = [System.Windows.Forms.MessageBox]::Show("You clicked Cancel. Would you like to try again or exit?", "Select a location", [System.Windows.Forms.MessageBoxButtons]::RetryCancel)
if($res -eq "Cancel")
#Ends script
} Grab-PDFs

This comment has been minimized.

Copy link

jkengland commented Mar 11, 2019

does this work recursively for child pages.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.