Invoke-WebRequest:无法绑定参数'Uri'。无法转换“@ {

时间:2017-06-27 14:18:15

标签: arrays powershell for-loop foreach

想要检索我在文本文件中列出的所有URL的P html元素的innerText。我是新手,但我想我可以解决它。自动取款机。我失败了,因为我无法处理如何正确传递循环的每个数组项目:

$theURLS = Import-CSV linkek_alatt.txt
$item = New-Object System.Collections.ArrayList
for ($i=0; $i -le $theURLS.length;$i++)
{
foreach($item in $theURLS)
{
$Site = Invoke-WebRequest -URI $item
$Igotit = $Site.AllElements | Where-Object {$_.tagName -eq "P"} |
Select -First 1 -Skip 3 -ExpandProperty innerText
$Igotit
}
}
> FilteredContent.txt

过滤的文件应包含信息。

现在,我收到一个“Invoke-WebRequest:无法绑定参数'Uri'。无法转换”@ {“错误,我看到重复的第一个URL和一个随机的 - 下一步的一个 - 错误消息中的一个任何想法都欢迎。 最好的祝福, 盖佐

1 个答案:

答案 0 :(得分:0)

根据评论,问题出现是因为您在此处使用Import-CSV

$theURLS = Import-CSV linkek_alatt.txt

这会尝试使用文件中的第一行文本作为标题来创建PowerShell对象。

如果你的.txt文件不是.csv文件,而你想返回一个字符串数组,而是使用Get-Content

$theURLS = Get-Content linkek_alatt.txt

如果您的文件是CSV文件,那么在Invoke-WebRequest中使用该文件时,您需要引用与网址标题相匹配的属性名称。例如,如果它有一个标题为“URL”:

Invoke-WebRequest -URI $item.URL

但我怀疑你不是这样。