2017-06-02 52 views
0

我使用PowerShell中的Invoke-WebRequest功能,我抓住這個調用-WebRequest的所有元素

$WebResponse = Invoke-WebRequest $siteExt 
$WebResponse.AllElements | ? { $_.Class -eq 'price' } | select innerText 

然而,當我把它打印出來,它給我的每一個元素 - 如.AllElements暗示。但是,可以說它打印出5個價格,我想專門抓取,存儲和輸出其中一個位置 - 讓我們說每個第三個值。有沒有辦法做到這一點?

它打印出這個目前:

innerText 
--------- 
$31.00 
$72.00 
$209.95 

我只是想第一個值雖然;不是全部3.我也想將它存儲在一個列表中。

+0

@TessellatingHeckler那些不適用的方式調用'WebRequest'功能 - 我相信。我知道如何計數,存儲變量並遍歷它們。但是,當我通過'WebRequest'函數主動捕獲信息時,我不知道如何將這些概念與它相關聯。我的問題是如何選擇返回的「所有元素」中的一個。 – KangarooRIOT

+0

「*那些不適用於調用WebRequest函數的方式 - 我相信*」 - 您爲什麼相信?你*必須*相信他們的工作,你在你的問題中使用過濾和選擇在你自己的代碼中,你認爲它在那裏工作。一旦你將對象輸出到管道中,它們從哪裏來就沒有區別。 – TessellatingHeckler

回答

1

試試這個。 恰在第一次:

$WebResponse.AllElements|?{$_.Class -eq 'price'}|select innerText | select -first 1 

每三:

$WebResponse.AllElements | ?{$_.Class -eq 'price'} | select innerText | select -index ((1..$WebResponse.AllElements.Count)| % {$p=$_;if(($_ %= 3) -eq 2){[string]$p+","}}) 

-

+0

太棒了!我無法找到如何做到這一點。謝謝你,我的好先生! – KangarooRIOT

+0

任何想法如何將該值存儲到列表中? :) – KangarooRIOT

+0

是的...這是你的功課。不要忘了分析一下這些垃圾,這樣你可以拿出更好的版本;) –

相關問題