You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用PowerShell提取微软网页中Windows Server 2022的链接问题

解决PowerShell抓取微软生命周期页面动态内容的问题

这个页面是JavaScript动态渲染的,Invoke-WebRequest只能获取服务器返回的初始HTML(也就是你看到的页头页脚),无法等待页面JS加载完成后的主体内容。给你两种可行的解决方法:

方法1:用Selenium模拟浏览器加载(适合复杂动态页面)

通过Selenium启动真实浏览器,等待页面JS执行完毕后再抓取内容:

  1. 先安装Selenium PowerShell模块:
Install-Module -Name Selenium -Force -AllowClobber
  1. 编写脚本抓取目标链接:
# 启动Chrome浏览器
$driver = Start-SeChrome
# 访问目标页面
$driver.Navigate().GoToUrl("https://learn.microsoft.com/en-us/lifecycle/products/?products=windows")
# 等待页面加载完成(最多等10秒)
Start-Sleep -Seconds 10
# 定位包含"Windows Server 2022"的<a>标签
$server2022Link = $driver.FindElementByXPath("//a[contains(text(), 'Windows Server 2022')]")
# 提取链接
$server2022Href = $server2022Link.GetAttribute("href")
# 输出结果
Write-Host "Windows Server 2022的链接:$server2022Href"
# 关闭浏览器
$driver.Quit()

方法2:直接调用页面的API接口(更高效)

微软的生命周期页面会通过API动态加载产品数据,你可以直接请求这个接口获取JSON数据,无需渲染页面:

  1. 用浏览器开发者工具(F12)的「网络」面板,找到加载产品列表的API请求(通常是类似https://learn.microsoft.com/api/lifecycle/products?products=windows的GET请求)
  2. 用Invoke-RestMethod调用该接口并解析数据:
# 调用API获取产品数据
$apiUrl = "https://learn.microsoft.com/api/lifecycle/products?products=windows"
$products = Invoke-RestMethod -Uri $apiUrl
# 筛选Windows Server 2022的条目
$server2022 = $products | Where-Object { $_.title -eq "Windows Server 2022" }
# 拼接完整链接(API返回的是相对路径)
$fullLink = "https://learn.microsoft.com" + $server2022.url
# 输出结果
Write-Host "Windows Server 2022的链接:$fullLink"

注意:API接口可能会随微软页面更新变化,如果失效可以重新用开发者工具抓最新的请求地址。

内容的提问来源于stack exchange,提问作者scode123

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 22:57:15