Grab image links from HTML website using powershell

前端 未结 2 1388
长发绾君心
长发绾君心 2021-01-01 03:57

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 wha

相关标签:
2条回答
  • 2021-01-01 04:34

    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.

    0 讨论(0)
  • 2021-01-01 04:37

    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)
    }
    
    0 讨论(0)
提交回复
热议问题