使用 href 提取 HTML 个链接

Extracting HTML Links with href

我使用了以下代码:

$URI   = $webpage
$HTML  = Invoke-WebRequest -Uri $URI
$price = ($HTML.ParsedHtml.getElementsByTagName("div") | Where {
           $_.className -eq 'price'
         }).innerText

从这个 HTML 代码中提取信息:

<div class="price">
  <span class="accessibility">Purchase price</span>
  <small>$</small>3.50
</div>

但我似乎无法使用 .ParsedHtml.getElementsByTagName().

从以下 HTML 代码中提取 URL
</a>
<div class="detail">    
    <span role="presentation" aria-hidden="true" class="brand">Steves Fresh</span>
    <span class="item" role="presentation" aria-hidden="true">
        <a role="presentation" aria-hidden="true" class="product-url" href="http://testurlnodetailsshown.com.au">
        Steves&nbsp;
        2 pack
        </a>

Select <div> 元素,然后 select 来自结果的 <a> 个元素:

$HTML.ParsedHtml.getElementsByTagName('div') |
  Where-Object { $_.className -eq 'detail' } |
  ForEach-Object { $_.getElementsByTagName('a') } |
  Where-Object { $_.className -eq 'product-url' } |
  Select-Object -Expand href

如果只有一个 link 与 'product-url' class 你可以使用:

$html.Links |
Where-Object { $_.class -eq 'product-url' } |
Select-Object -ExpandProperty href