如何从网站检索列表项

时间:2016-06-03 09:06:44

标签: html list powershell xpath

我正在尝试从this website左侧的列表中检索数据。

数据的结构如下:

<ul class="sections nice_sel">
    ...
    <li class="">
        <a href="/c/london-bar/set-overviews-england-and-wales">IMPORTANT_DATA</a>
    </li>
    ...
</ul>

我需要从列表中检索每个IMPORTANT_DATA内部HTML项目。

我尝试按照this question获取代码:

$url = "http://www.legal500.com/c/london-bar"
$html = Invoke-WebRequest $url


$thelist = $html.ParsedHtml.body.getElementsByTagName('ul') | 
    Where {$_.getAttributeNode('class').Value -eq 'sections nice_sel'}

但我不确定如何从中获取孩子(<li>)元素。

我还考虑过使用XPath,但我看不到将$html变量传递给-Path

Select-XML -Path $html -XPath "//*[contains(@class, 'sections nice_sel')]"
  

Select-XML:无法找到驱动器。一个名为'PUBLIC'的驱动器 - // W3C // DTD XHTML 1.0   严格// EN“”http'不存在。   在行:1个字符:1   + Select-XML -Path $ html -XPath“// * [contains(@class,'Test')]”   + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~       + CategoryInfo:ObjectNotFound:(html ... rict // EN“”http:String)[Select-Xml],Driv      eNotFoundException       + FullyQualifiedErrorId:DriveNotFound,Microsoft.PowerShell.Commands.SelectXmlCommand

我也尝试过:

$url = "http://www.legal500.com/c/london-bar"
$html = Invoke-WebRequest $url

$thelist = $html.ParsedHtml.body.getElementsByTagName('a') | 
    Where {$_.getAttributeNode('href').Value -contains '/c/london-bar/'}

但由于某种原因,这不会返回任何内容..(如$thelist为空)

0 个答案:

没有答案