Я пытаюсь написать скрипт, который загружает информацию с веб-сайтов.Я могу загрузить информацию, но не могу заставить работать фильтрацию.У меня есть ряд значений, которые я хочу пропустить, которые хранятся в $TakeOut
, но он не распознает значения в if -eq $TakeOut
.Мне нужно написать строку для каждого значения.
Мне интересно, есть ли способ использовать $value
, так как со временем будет пропущено значительное количество значений.
Это работает, но в долгосрочной перспективе это не практично.
if ($R.innerText -eq "Home") {Continue}
Что-то вроде этого было бы предпочтительным.
if ($R.innerText -eq $TakeOut) {Continue}
Вот пример моего кода.
#List of values to skip
$TakeOut = @()
$TakeOut = (
"Help",
"Home",
"News",
"Sports",
"Terms of use",
"Travel",
"Video",
"Weather"
)
#Retrieve website information
$Results = ((Invoke-WebRequest -Uri "https://www.msn.com/en-ca/").Links)
#Filter and format to new table of values
$objects = @()
foreach($R in $Results) {
if ($R.innerText -eq $TakeOut) {Continue}
$objects += New-Object -Type PSObject -Prop @{'InnerText'= $R.InnerText;'href'=$R.href;'Title'=$R.href.split('/')[4]}
}
#output to file
$objects | ConvertTo-HTML -As Table -Fragment | Out-String >> $list_F