【问题标题】:PowerShell: how to get URL string from line? BeginnerPowerShell:如何从行中获取 URL 字符串?初学者
【发布时间】:2018-08-23 17:06:50
【问题描述】:

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

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

“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 时,它永远不会工作。非常感谢您的宝贵时间。

【问题讨论】:

  • Invoke-WebRequest 可能对您有所帮助。特别是示例2。无需使用正则表达式。 ;-) ... 顺便说一句:欢迎来到 SO。

标签: regex shell powershell


【解决方案1】:

无需下载网站或通过所有行解析。 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-17
    • 1970-01-01
    • 2014-09-09
    相关资源
    最近更新 更多