Пустое поле "Parsed-HTML" при использовании "invoke-webrequest" в Azure PowerShell Runbook - PullRequest
1 голос
/ 07 ноября 2019

Я пытаюсь выполнить API-вызов rest, используя «invoke-webrequest» в Azure PowerShell Runbook.

Сначала я получил сообщение об ошибке, касающееся Internet Explorer Engine. Когда я искал об этом, я обнаружил, что использование **-UseBasicParsing** решит проблему. Однако после его использования я больше не вижу сообщения об ошибке, но я получаю пустое «**Parsed-Html**». Код работает нормально, когда я запускаю его локально.

$result = invoke-webrequest -uri $url -Headers $Header -UseBasicParsing

Я ожидаю, что выходные данные Parsed-Html будут объектом, но это ноль.

1 Ответ

1 голос
/ 07 ноября 2019

В Automation, когда мы используем командлет Invoke-WebRequest, нам нужно использовать опцию – UseBasicParsing, поскольку у нас нет Internet Explorer в песочницах Azure Automation.

В этом сценарии вы должны использовать **HtmlAgilityPack**. Загрузите **HtmlAgilityPack.dll** как модуль и используйте команду "add-type -Path .\HtmlAgilityPack.dll" в runbook для генерации кода **HtmlDocument**

, который будет выглядеть примерно так:

$URI = "https://www.google.fr/search?q=googe&rlz=1C1CHBF_frFR711FR711&oq=googe&aqs=chrome..69i57j69i60l5.912j0j7&sourceid=chrome&ie=UTF-8#q=google"    


$wc = New-Object System.Net.WebClient    
$htmlString=$wc.DownloadString($URI)    


cd C:\Modules\User\HtmlAgilityPack    
add-type -Path .\HtmlAgilityPack.dll    
$doc = New-Object HtmlAgilityPack.HtmlDocument   


$doc.LoadHtml($htmlString)    
$root= $doc.DocumentNode    
$root.SelectSingleNode("//head/title").Innertext

Вы можете проверить это ссылка для дальнейшего использования. Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...