PowerShell - HTML-разбор: получить информацию с веб-сайта - PullRequest
24 голосов
/ 29 января 2012

Обновление, скрипт работает с PowerShell V3.0, спасибо @ Doug

Я хочу использовать следующий скрипт PowerShell для получения информации о статусе рейса от Lufthansa.Я могу видеть информацию о статусе рейса в браузере, но я не нашел способа получить доступ к этой информации с помощью моего скрипта.

Я хочу получить на веб-сайте следующую информацию:

  • статус рейса
  • время (вылет, прилет)
  • аэропорт (вылет, прилет)
  • номер рейса (только Lufthansa)

Скрипт:

$flight = " LH3396"
$url = "http://bing.com?q=flight status for $flight"
$result = Invoke-WebRequest $url
$elements = $result.AllElements | Where Class -eq "ans" | Select -First 1 -ExpandProperty innerText 

#[string[]]$resultArray

$resultArray = @()

foreach($element in $elements.Split("`n")){
    if($element.Length -gt "2")
    {$resultArray += $element}
}

Ответы [ 2 ]

36 голосов
/ 30 января 2012

Вот способ запроса Bing в PowerShell v3

function Get-FlightStatus {
    param($query)

    $url = "http://bing.com?q=flight status for $query"

    $result = Invoke-WebRequest $url

    $result.AllElements | 
        Where Class -eq "ans" |
        Select -First 1 -ExpandProperty innerText    
}
Get-FlightStatus LH3102

Flight status for Lufthansa 3102

To depart · Jan 30, 2012

From: Hamburg (HAM) 05:35 PM terminal 2

To: Vienna (VIE) 07:05 PM


Bing Travel   Source: www.flightstats.com, 1 minute ago
11 голосов
/ 29 января 2012

Вы можете использовать Html Agility Pack .

Вот статья об использовании его с PowerShell: HTML Agility Pack потрясает ваш мир чистки экрана

...