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

PowerShell网页抓取:无法获取特定新闻板块的Href链接

问题解答:抓取特定新闻标题对应的href链接

嘿,这个问题其实很好理清——你应该用GetElementsByTagName('a'),不过不是直接全局查找,而是在你已经定位到的标题div内部去查找,原因如下:

  1. 你之前定位的latest_news_each_title类的div,只是新闻标题的容器,但网页里承载跳转链接的核心元素是<a>标签,这类链接标签通常嵌套在标题容器里。
  2. 如果直接全局调用GetElementsByTagName('a'),会拿到页面上所有无关的链接(比如导航栏、侧边栏的链接),完全不符合你“只抓特定板块新闻链接”的需求。

给你调整后的代码示例,这样就能精准拿到对应标题的目标链接了:

# 获取目标页面的内容
$WebResponse = Invoke-WebRequest -Uri https://www.livesquawk.com/latest-news

# 定位到目标标题div,再从中提取对应的href链接
$newsLinks = $WebResponse.ParsedHtml.DocumentElement.GetElementsByTagName('div') | 
             Where { $_.ClassName -match 'latest_news_each_title' } |
             ForEach-Object { $_.GetElementsByTagName('a')[0].href }

# 如果需要同时获取标题文本和对应链接,可以返回自定义对象:
$newsItems = $WebResponse.ParsedHtml.DocumentElement.GetElementsByTagName('div') | 
             Where { $_.ClassName -match 'latest_news_each_title' } |
             ForEach-Object {
                 [PSCustomObject]@{
                     Title = $_.InnerText.Trim()
                     Link = $_.GetElementsByTagName('a')[0].href
                 }
             }

简单拆解下逻辑:

  • 先筛选出所有包含目标标题的div,确保只处理你关注的新闻板块内容
  • 对每个目标div,用GetElementsByTagName('a')找到内部的链接标签,提取它的href属性(用[0]是因为每个标题容器里通常只有一个对应新闻的链接标签)
  • 如果需要同时保存标题和链接,返回自定义对象会更方便后续的筛选、导出等操作

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 15:42:44