PowerShell:如何从行获取URL字符串?初学者

时间:2018-03-15 01:21:29

标签: regex shell powershell

如何编写一个Power Shell脚本,用一个网站抓取并从公共静态html文件中提取一个网址?

我无法获取链接,我只能获得包含链接的行。

'Invoke-WebRequest'下载并保存html文件。

我想要的链接以.m3u8结尾,所以我使用

'Select-String'搜索.m3u8,PowerShell返回一行。但我想要一个链接,而不是一行,该行包含其他我不想要的普通html标记。该链接采用双引号,以.m3u8结尾。我想要引号内的内容。

我应该使用split将行转换为数组吗?

我应该使用正则表达式“只获取引号内的内容”吗?如果是这样的话?

$variable_text = index.html
$variable_line = sls .m3u8 $variable_text
$variable_url = sls "regex inside of the quotes" in $variable_line

当我谷歌正则表达式并将它们输入powershell时,命令返回“>>”。也许我的问题是语法?在线正则表达式检查工具工作,但当我将该正则表达式放入powershell时它永远不会工作。非常感谢您的宝贵时间。

1 个答案:

答案 0 :(得分:0)

无需下载网站或通过所有行解析。 Invoke-Webrequest cmdlet包含名为links的属性。

获取所有链接并搜索m3u8链接的示例:

$WebSite = Invoke-WebRequest -Uri "your website"
$Links = $WebSite.Links.href
$Links | Where-Object{$_ -like "*.m3u8"} #Will show you all links which end with .m3u8