LaPhi
LaPhi

Reputation: 5907

PowerShell - HTML parsing: get information from a website

Update, Script is working with PowerShell V3.0, Thanks @ Doug

I want to use the following PowerShell script to get flight status information from Lufthansa. I can see flight status information in the browser, but I haven't found any way to access this information with my script.

I want to get the following information from the website:

Script:

$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}
}

Upvotes: 24

Views: 87324

Answers (2)

Doug Finke
Doug Finke

Reputation: 6823

Here is a way to query Bing in 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

Upvotes: 37

TrueWill
TrueWill

Reputation: 25563

You could use the Html Agility Pack.

Here's an article on using it with PowerShell: HTML Agility Pack Rocks Your Screen Scraping World

Upvotes: 11

Related Questions