如何使用powershell刮取网站,然后将输出修剪为单个日期

如何使用powershell刮取网站,然后将输出修剪为单个日期,powershell,scrape,Powershell,Scrape,抱歉,如果这是重复的,我似乎找不到这个问题的第一次迭代。 我正试图刮一个网站,以产生一个更新的应用程序的日期。我的代码生成两个日期,所以我想知道如何将其缩减为一个字符串,在本例中,应该是2018年10月31日。我知道在那之后如何操作它供我使用,但我被困在如何修剪输出 $months = "january", "february", "march", "april", "may", "june", "july", "august", "september", "october", "novembe

抱歉,如果这是重复的,我似乎找不到这个问题的第一次迭代。 我正试图刮一个网站,以产生一个更新的应用程序的日期。我的代码生成两个日期,所以我想知道如何将其缩减为一个字符串,在本例中,应该是2018年10月31日。我知道在那之后如何操作它供我使用,但我被困在如何修剪输出

$months = "january", "february", "march", "april", "may", "june", "july", "august", "september", "october", "november", "december"

$response = Invoke-WebRequest -Uri "https://play.google.com/store/apps/details?id=com.airwatch.androidagent&hl=en_US"

$data = ($response.ParsedHtml.getElementsByTagName('span') | Where {$_.className -eq 'htlgb'} ).innerText

$data | Select-String -Pattern $months

我记得在那个问题上发过帖子。。。我也找不到。[皱眉]

对于您当前的问题,只需获取结果数组中的第一项。像这样

@($data | Select-String -Pattern $months)[0]

如果有多个,则将获得第一个。。。如果只有一项,那么这是唯一的一项

或者管道到
|选择-第一个1
@TheMadTechnician-我怀疑-但从未测试过-管道的使用,
获取-
-减少
选择
,以及
选择对象
都会给整个过程增加一点延迟。[grin]您已经在使用管道,您认为
$data | Select String-Pattern$months
是什么?如果您想提高速度,只需运行
@($response.ParsedHtml.getElementsByTagName('span'))。其中({$\.className-eq'htlgb'-和$\.innertext-match($months-join'.'))})[0]。第3行的innertext
。如果这不起作用,请更新您的PowerShell。@TheMadTechnician-您的示例添加了第二个管道跳转。每一步都要多走一小步。另外,
Select Object
比数组索引调用花费更多的时间。//我对“减少选择”的评论真是太离谱了。[脸红]很抱歉!谢谢你们,所有这些都是好主意,将帮助我完成我需要做的,你们摇滚。