PowerShell - HTML解析:从网站获取信息

时间:2012-01-29 13:36:54

标签: powershell html-parsing

更新,脚本正在使用PowerShell V3.0,感谢@ Doug

我想使用以下PowerShell脚本从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 个答案:

答案 0 :(得分:36)

以下是在PowerShell v3中查询Bing的方法

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

答案 1 :(得分:11)

您可以使用Html Agility Pack

这是一篇关于在PowerShell中使用它的文章:HTML Agility Pack Rocks Your Screen Scraping World