Public/Get-RoosSchlikker.ps1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
function Get-RoosSchlikker
{
    $DutchCulture = New-Object -TypeName System.Globalization.CultureInfo -ArgumentList 'nl-NL'

    Invoke-WebRequest -Uri 'https://www.parool.nl/auteur/roos-schlikker' `
    | Select-Object -ExpandProperty Links
    | Select-Object -ExpandProperty href
    | Where-Object { $_ -like '/columns-opinie/*' -or $_ -like '/ps/*' }
    | ForEach-Object {
        $Url = "https://www.parool.nl$($_)"
        $Content = Invoke-WebRequest -Uri $Url | Select-Object -ExpandProperty Content
        $Title = (($Content | pup 'h1 text{}' --plain) | ForEach-Object { $_.Trim() } | Where-Object { $_ }) -join ' '
        $Body = ($Content | pup 'p.artstyle__paragraph text{}' --plain | ForEach-Object { $_.Trim() } | Where-Object { $_ } )
        $Date = [DateTime]::ParseExact(($Content | pup '.artstyle__production__date text{}' --plain), 'd MMMM yyyy', $DutchCulture)

        [PSCustomObject][Ordered]@{
            PSTypeName = 'UncommonSense.Parool.Article'
            Url        = $Url
            Date       = $Date
            Title      = $Title
            Body       = $Body
        }
    }
}