我需要抓取网页以获取一些信息,并一直试图使用Select-String来做到这一点。我只对页面信息的一部分以及所有其他内容感兴趣,目前正在测试此页面以确保其正常工作。这是我感兴趣的部分...
我尝试过使用Select-String拆分行,并通过互联网和此处找到了其他一些接近但不完全接近的示例。
<div class="adrbox-light clearfix">
<div class="adrbox-footer">
<ul>
<li>Name:
<span class="darktext">John Test Value</span>
</li>
<li>Street Address:
<span class="darktext">123 Sesame Street</span>
</li>
<li>City:
<span class="darktext">AnyTown</span>
</li>
<li>State/Region:
<span class="darktext">AnyStateRegion</span>
</li>
<li>Country:
<span class="darktext">United States</span>
</li>
</ul>
</div>
<div id="adrbox-map" class="adrbox-map"></div>
</div>
我唯一感兴趣的使用Select-String返回的行是每行中包含单词“ darktext”的行。
我一直在尝试使用Select-String来执行此操作,但是它从不选择行并且什么也不返回。如何使用Select-String做到这一点,还是在Power Shell中有更好的方法呢?
答案 0 :(得分:0)
如果您的HTML位于数组中(每个数组项一行),请尝试使用Where-Object
而不是Select-String
:
$HTMLArray | Where-Object {$_ -match "darktext"}
请注意,-match
的右操作数被视为正则表达式,必须将其视为正则表达式,因此,如果要匹配字符串中带有点的字符串,例如foo.bar
,您必须转义点... $_ match "foo\.bar" ...
。