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"