使用PowerShell解析HTML提取指定数据时无结果的问题求助
解决PowerShell提取网页数据无结果的问题
- 你的代码没结果大概率是类名匹配的问题:你写的
' col-sm-4 '前后带空格,但网页里的实际类名可能是不带前后空格的col-sm-4,或者该元素的类名是多个值组合(比如col-sm-4 some-other-class),精确匹配带空格的字符串自然找不到。改成模糊匹配试试:$getmeinfo = Invoke-WebRequest -Uri https://portal.assessor.lacounty.gov/parceldetail/5130020021 $UserHTMLDetails = $getmeinfo.ParsedHtml.getElementsByTagName('div') | Where-Object { $_.className -match 'col-sm-4' } - 如果还是不行,可以换一种思路,直接从网页响应的原始内容里提取目标数据,用正则匹配:
$getmeinfo = Invoke-WebRequest -Uri https://portal.assessor.lacounty.gov/parceldetail/5130020021 # 匹配包含col-sm-4类的div内的内容 $targetContent = $getmeinfo.Content | Select-String -Pattern '<div class="[^"]*col-sm-4[^"]*">(.*?)</div>' -AllMatches # 输出提取到的内容 $targetContent.Matches | ForEach-Object { $_.Groups[1].Value } - 额外提醒:如果黄色高亮的数据是页面加载后通过JavaScript动态渲染出来的,
Invoke-WebRequest只能抓取静态HTML,这种情况就得用模拟浏览器的工具(比如Selenium PowerShell模块)来获取渲染后的页面内容。
内容的提问来源于stack exchange,提问作者The Farm
相关产品推荐
相关产品推荐

