可以通过.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
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!