Private/Get-VolkskrantCartoon.ps1
|
function Get-VolkskrantCartoon { param ( [Parameter(Mandatory)] [string]$Uri, [Parameter(Mandatory)] [string]$Title ) $DutchCulture = New-Object -TypeName System.Globalization.CultureInfo -ArgumentList 'nl-NL' curl --silent --location $Uri | Join-String -Separator ' ' | ConvertTo-HtmlDocument | ForEach-Object { $_.DocumentNode.SelectNodes("//a") } | Where-Object { $_.HasAttributes } | ForEach-Object { $_.GetAttributeValue('href', '') } | Where-Object { $_ -like 'https://www.volkskrant.nl/cartoons/*' } | ForEach-Object { $Document = curl --silent --location $_ | Join-String -Separator ' ' | ConvertTo-HtmlDocument $DateText = $Document.DocumentNode.SelectSingleNode('//time').GetAttributeValue('datetime', '') -replace '\.000Z$', '' $Image = $Document.DocumentNode.SelectSingleNode('//figure/img').GetAttributeValue('src', '') $Date = [DateTime]::ParseExact($DateText, 's', $DutchCulture) [PSCustomObject][Ordered]@{ PSTypeName = 'UncommonSense.Volkskrant.Article' Url = $Image Date = $Date Title = $Title Body = $Image } } } |