Нужна помощь в разборе веб-сайта для даты выпуска альбомов - PullRequest
0 голосов
/ 02 июля 2019

Я новичок в powershell и, как и все новое, которое я пробую, я люблю учиться, используя то, что мне интересно. Я пытаюсь выяснить псевдокод для сценария.Я хотел бы сделать автоматизированный скрипт, который анализирует через https://en.wikipedia.org/wiki/List_of_years_in_hip_hop_music.и для каждого года выберите каждый альбом и сравните текущую дату с датой выпуска альбома, и, если она соответствует месяцу и дню, добавьте его в список с именем исполнителя и названием альбома, а затем ПОЛНОСТЬЮ отправьте мне список дней.релизы альбомов.Не ищу точный код, но идею о том, с чего начать и какие шаги предпринять.

$album = Invoke-WebRequest -uri "https://en.wikipedia.org/wiki/Blonde_(Frank_Ocean_album)"
$today = Get-Date -Format yyyy-M-dd
$date = $album.AllElements | where tagname -EQ "td" | where class -EQ "published" | select innertext
$date 

Это все, что у меня есть до сих пор.Я начал с небольшого альбома и вернул дату релиза.

1 Ответ

0 голосов
/ 02 июля 2019

Сценарий будет выглядеть примерно так:

$YIHHM = Invoke-WebRequest 'https://en.wikipedia.org/wiki/List_of_years_in_hip_hop_music'
$SongPages = ForEach($YearLink in ($YIHHM.Links | Where {$_.href -match '/wiki/.*in_hip_hop_music'})){
    $ThisYear = Invoke-WebRequest "https://en.wikipedia.org$($YearLink.href)"
    $ThisYear.Links | Where{$_.href -match '^/wiki/'} | ForEach-Object{
        $Page = Invoke-WebRequest "https://en.wikipedia.org$($_.href)"
        #Check if there's a published class, and if there is output the page
        If($_.tagname -eq 'td' and $_.class -eq 'published'){$Page}
    }
}

Тогда вы захотите отфильтровать $SongPages по точной дате их выпуска по сравнению с текущей датой, чтобы увидеть, совпадают ли свойства месяца и дня.Я полагаю, вы можете сделать это в том же цикле, где вы проверяете, существует ли опубликованный класс.Тогда вам просто нужно определить песню.Это все равно будет длиться вечно из-за количества ссылок и небольшого процента из них, которые будут ссылками на песню.

...