PowerShell 检测网站中的外链


可以通过.NET中WebClient类将页面下载到内存中,然后通过正则表达式匹配出所有的链接,再过滤掉出外部链接。但是在PowerShell 3.0中, 一切变得更加方便了:通过Invoke-WebRequest得到一个BasicHtmlWebResponseObject对象,然后直接对Links集合过滤即可。下面是一个实例函数Detect-OuterWebLinks

Function Detect-OuterWebLinks ([string]$website)
{
    $siteHost=([Uri]($website)).Host
    $site = Invoke-WebRequest -UseBasicParsing -Uri $website
    $site.Links | where { ([uri]($_.href)).Host -ne $siteHost } | select -ExpandProperty outerHTML
}

调用结果如下:

PS C:\> Detect-OuterWebLinks -website https://www.pstips.net
<a href="http://www4.clustrmaps.com/user/c3210556f"><img alt="Locations of visitors to this page" src="http://www4.clustrmaps.com/stats/maps-no_clusters/www.pstips.net-thumb.jpg">
</a>
本文链接: https://www.pstips.net/powershell-filter-outer-links-of-website.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!

关于 Mooser Lee

我是一个Powershell的爱好者,创建了PowerShell中文博客,热衷于Powershell技术的搜集和分享。本站部分内容来源于互联网,不足之处敬请谅解,并欢迎您批评指正。

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注