Invoke-WebRequest зависает / зависает - PullRequest
0 голосов
/ 17 мая 2019

Почему командлет "Invoke-WebRequest" зависает / зависает на определенных URL-адресах? Любое решение возможно? Я хочу получить доступ к объектам span для данной веб-страницы, и этот командлет был бы очень полезен, если бы он не зависал так.

Например, это зависает:

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

Это не так:

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

-UseBasicParsing заставляет его работать, но я хочу использовать функциональность, которую Invoke-WebRequest возвращает без базового анализа, потому что при базовом анализе поле span, которое я пытаюсь извлечь, не заполняется.

1 Ответ

1 голос
/ 17 мая 2019

Кажется, это все еще ошибка в 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
...