Powershell 调用WebRequest冻结/挂起

Powershell 调用WebRequest冻结/挂起,powershell,freeze,invoke-webrequest,Powershell,Freeze,Invoke Webrequest,为什么cmdlet“Invoke WebRequest”会冻结/挂起某些URL?有可能的解决办法吗?我想访问给定网页的“span”对象,如果该cmdlet不是这样挂起的,它将非常有用 例如,这将挂起: Invoke-WebRequest -Uri "https://cloud.google.com/chrome-enterprise/browser/download/" 这并不是: Invoke-WebRequest -Uri "https://www.microsoft.com/fr-ca/

为什么cmdlet“Invoke WebRequest”会冻结/挂起某些URL?有可能的解决办法吗?我想访问给定网页的“span”对象,如果该cmdlet不是这样挂起的,它将非常有用

例如,这将挂起:

Invoke-WebRequest -Uri "https://cloud.google.com/chrome-enterprise/browser/download/"
这并不是:

Invoke-WebRequest -Uri "https://www.microsoft.com/fr-ca/"

-UseBasicParsing使其运行,但我想使用Invoke WebRequest返回的功能而不进行基本解析,因为使用基本解析时,我试图提取的范围字段没有填充。

这似乎仍然是powershell中的一个bug

一种可能的解决方法是手动将项目转换为解析的HTML

Function ConvertTo-NormalHTML {
    param([Parameter(Mandatory = $true, ValueFromPipeline = $true)]$HTML)

    $NormalHTML = New-Object -Com "HTMLFile"
    $NormalHTML.IHTMLDocument2_write($HTML.RawContent)
    return $NormalHTML
}

$Content = (Invoke-WebRequest -Uri "https://cloud.google.com/chrome-enterprise/browser/download" -UseBasicParsing ).Content

$ParsedHTML = ConvertTo-NormalHTML -HTML $Content

$ParsedHTML

很好,非常感谢。不过应该是“$Content=(Invoke WebRequest-Uri”“-UseBasicParsing)”。最后没有“.content”。@justagy,添加-UseBasicParsing效果非常好,可以防止出现挂断。-UseBasicParsing已多年没有解决此问题me@JamesMoore你犯了什么错误?