Grab image links from HTML website using powershell
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)}
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.