Skip to content Skip to sidebar Skip to footer

Grab Image Links From Html Website Using Powershell

I'd like to download some image galleries in bulk. The images are offered up for free with no permissions needed. I for the life of me cannot get it to work. This is what I have

Solution 1:

You need to extract value that was a match. Select-String returns objects, and when you echo it, what happends is $pattern.ToString(). ToString() returns the line, and not the match-value. This will return all the links only:

Get-Content $webpagetxt | Select-String -pattern $regex -Allmatches | % { $_.Matches | % { $_.Value } }

Btw, instead of saving the webpage and reopen it with get-content, you can simply split the string on linebreaks to get an array(if that's was the only reason you saved it). :-)

$webpage -split"`n" | Select-String -pattern $regex -Allmatches | % { $_.Matches | % { $_.Value } }

EDIT To download it, you could just extend it with another foreach-loop:

$rootDir = "http://website.com/sport/galleries/"$saveDir = "C:\Users\user\Desktop\"
$webpage -split "`n" | Select-String -pattern $regex -Allmatches | % { $_.Matches | % { $_.Value } } | % {
    #Get local path
    $local = $_.Replace($rootDir, $saveDir)
    #Create path
    $file = New-Item $local -ItemType file -Force
    #Download
    $wb.DownloadFile($_, $file.FullName)
}

Solution 2:

Select-String returns you an object with properties. Send it to Get-Member to see what goodies you have. You'll want to check out the matches property e.g. $pattern.matches. Check out example 9 in the documentation.

Post a Comment for "Grab Image Links From Html Website Using Powershell"