首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Invoke-WebRequest冻结/挂起

Invoke-WebRequest冻结/挂起
EN

Stack Overflow用户
提问于 2019-05-17 21:34:57
回答 1查看 3.4K关注 0票数 4

为什么cmdlet "Invoke-WebRequest“在某些URL上冻结/挂起?有可能的变通方法吗?我想访问给定网页的"span“对象,如果它不像那样挂起,这个cmdlet将非常有用。

例如,这段代码挂起:

代码语言:javascript
复制
Invoke-WebRequest -Uri "https://cloud.google.com/chrome-enterprise/browser/download/"

这不是:

代码语言:javascript
复制
Invoke-WebRequest -Uri "https://www.microsoft.com/fr-ca/"

-UseBasicParsing使其运行,但我希望使用Invoke-WebRequest返回的功能,而无需进行基本解析,因为使用基本解析时,我试图提取的span字段不会被填充。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-17 23:56:06

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

https://github.com/PowerShell/PowerShell/issues/2867

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

代码语言:javascript
复制
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
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56187543

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档