Как получить указанную c информацию с веб-сайта, используя powershel - PullRequest
0 голосов
/ 05 марта 2020

Как мне go узнать о получении информации из указанной c информации?

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

Например, если бы я хотел получить информацию только из раздела «версия» https://en.m.wikipedia.org/wiki/PowerShell Как я мог это сделать?

$website = Invoke-WebRequest -URI ‘https://en.m.wikipedia.org/wiki/PowerShell’

Посоветуйте, пожалуйста, как мне это сделать, большое спасибо

1 Ответ

0 голосов
/ 05 марта 2020

Для вашего URI просмотрите элементы или форму, указав c элементы.

$url = 'https://en.m.wikipedia.org/wiki/PowerShell'

($FormElements = Invoke-WebRequest -Uri $url -SessionVariable fe)   

<#
# Results

StatusCode        : 200
StatusDescription : OK
Content           : <!DOCTYPE html>
                    <html class="client-nojs" lang="en" dir="ltr">
                    <head>
...
#>


$FormElements.AllElements
<#
# Results

innerHTML : 
innerText : 
outerHTML : 
outerText : 
tagName   : !

innerHTML : <HEAD><TITLE>PowerShell - Wikipedia</TITLE>
            <META charset=UTF-8>
            <SCRIPT>document.documentElement.className="client-js
...#>    

$FormElements.ParsedHtml.anchors | Select 'ie8_href'
<#
# Results

ie8_href                                                                              
--------                                                                              
about:/w/index.php?title=Special:UserLogin&returnto=PowerShell                        
about:/w/index.php?title=PowerShell&action=edit&section=0                             
about://en.wikipedia.org/w/index.php?title=PowerShell&mobileaction=toggle_view_desktop
#>


($Form = $FormElements.Forms[0]) | Format-List -Force

<#
# Results

Id     : 
Method : get
Action : /w/index.php
Fields : {[main-menu-input, on], [searchInput, ]}
#>

$Form | Get-Member

<#
# Results

        TypeName: Microsoft.PowerShell.Commands.FormObject

Name        MemberType   Definition                                                        
----        ----------   ----------                                                        
Equals      Method       bool Equals(System.Object obj)                                    
GetHashCode Method       int GetHashCode()                                                 
GetType     Method       type GetType()                                                    
ToString    Method       string ToString()                                                 
Action      Property     string Action {get;}                                              
Fields      Property     System.Collections.Generic.Dictionary[string,string] Fields {get;}
Id          Property     string Id {get;}                                                  
Method      Property     string Method {get;} 
#>

$Form.Fields

<#
# Results

Key             Value
---             -----
main-menu-input on   
searchInput  
#>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...