Public/Get-TomGauld.ps1

function Get-TomGauld
{
    param
    (
    )

    $AmericanCulture = New-Object -TypeName System.Globalization.CultureInfo -ArgumentList 'en-US'

    curl --silent --location 'https://www.newscientist.com/author/tom-gauld/'
    | Join-String -Separator ' '
    | ConvertTo-HtmlDocument
    | Select-HtmlNode -CssSelector 'a' -All
    | Select-Object -ExpandProperty Attributes
    | Where-Object Name -EQ 'href'
    | Where-Object Value -Like 'https://www.newscientist.com/article/*'
    | Select-Object -ExpandProperty Value
    | ForEach-Object {
        $Document = curl --silent --location $_
        | Join-String -Separator ' '
        | ConvertTo-HtmlDocument

        $DateText = $Document | Select-HtmlNode -CssSelector '.article__pubdate' | Get-HtmlNodeText
        $Date = [DateTime]::ParseExact($DateText, 'd MMMM yyyy', $AmericanCulture)
        $Title = $Document | Select-HtmlNode -CssSelector 'h1' | Get-HtmlNodeText
        $Image = ($Document | Select-HtmlNode -CssSelector 'figure.wp-block-image img').GetAttributeValue('src', '')

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