powershell提取html字段,使用powershell以HTML格式检索文本

让这个问题如此有趣的原因在于,HTML看起来和气味就像XML一样,后者由于其良好的行为和有序的结构而具有更好的可编程性.在理想的世界中,HTML将是XML的一个子集,但现实世界中的HTML显然不是XML.如果您将问题中的示例提供给任何XML解析器,它将会避免各种违规行为.话虽如此,使用单行PowerShell可以实现所需的结果.这个返回href的全文:

Select-NodeContent $doc.DocumentNode "//a/@href"

这个提取所需的子字符串:

Select-NodeContent $doc.DocumentNode "//a/@href" "IP_PHONE_BACKUP-(.*)\.zip"

但是,捕获的是开销/设置,以便能够运行那一行代码.你需要:

>安装HtmlAgilityPack以使HTML解析看起来就像XML解析一样.

>如果要解析实时网页,请安装PowerShell Community Extensions.

>了解XPath能够构建到目标节点的可导航路径.

>了解正则表达式,以便能够从目标节点中提取子字符串.

满足这些要求后,您可以将HTMLAgilityPath类型添加到您的环境并定义Select-NodeContent函数,如下所示.代码的最后部分显示了如何为上述单行中使用的$doc变量赋值.我将展示如何根据您的需要从文件或Web加载HTML.

Set-StrictMode -Version Latest

$HtmlAgilityPackPath = [System.IO.Path]::Combine((Get-Item $PROFILE).DirectoryName,"bin\HtmlAgilityPack.dll")

Add-Type -Path $HtmlAgilityPack

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值