PowerShell - HTML 解析:从网站获取信息
Posted
技术标签:
【中文标题】PowerShell - HTML 解析:从网站获取信息【英文标题】:PowerShell - HTML parsing: get information from a website 【发布时间】:2012-02-21 15:20:30 【问题描述】:更新,脚本正在使用 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
【问题讨论】:
【参考方案1】:您可以使用html Agility Pack。
这是一篇关于在 PowerShell 中使用它的文章:HTML Agility Pack Rocks Your Screen Scraping World
【讨论】:
谢谢!我现在被困在 PowerShell v2 上。【参考方案2】:这是一种在 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
【讨论】:
有没有简单的方法将输出转换为数组? 尝试 Get-FlightStatus LH3102 -split "r
n"
以防万一:如果您只是在比利时使用 bing.com,它会将 url 更改为 be.bing.com 并且航班状态将不起作用(因为 bing 仍处于测试阶段在比利时)。要解决此问题,只需将 ?cc=us 添加到 url:“bing.com?cc=us&q=flight status for $query”
能否请您更新脚本,以便我可以使用并从中学习,谢谢。以上是关于PowerShell - HTML 解析:从网站获取信息的主要内容,如果未能解决你的问题,请参考以下文章
iOS开发问题:已经获得了json字符串,怎么解析并显示到tableview上
powershell 此递归PowerShell脚本从SharePoint中删除网站及其所有子网站。这消除了无法进行del的问题
使用 Powershell 解析从 Web 请求返回的 JSON 字节流而不写入文件