Invoke-WebRequest 冻结/挂起
Invoke-WebRequest freezes / hangs
为什么 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 returns 的功能而不进行基本解析,因为使用基本解析,我尝试提取的跨度字段不是人口稠密。
这似乎仍然是 powershell 中的一个错误
https://github.com/PowerShell/PowerShell/issues/2867
一种可能的解决方法是手动将项目转换为已解析的 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
为什么 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 returns 的功能而不进行基本解析,因为使用基本解析,我尝试提取的跨度字段不是人口稠密。
这似乎仍然是 powershell 中的一个错误
https://github.com/PowerShell/PowerShell/issues/2867
一种可能的解决方法是手动将项目转换为已解析的 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