我试图从网页上的表格中提取文本。我使用Invoke-WebRequest拉取网页,将该变量设置为显示“AllElements”并尝试仅拉出与“Table”匹配的内部值;但是当我运行脚本时,没有任何内容被撤回,也没有显示任何错误。
$URI = 'https://www.python.org/downloads/release/python-2716/'
$R = Invoke-WebRequest -URI $URI
$R.AllElements|?{$_.Class -eq "table"}|select innerText
我希望在python.org网站上显示表的值,但是当脚本运行时,不会返回任何内容。
我该如何解决这个问题?
那是因为没有表或表类,它是一个带有动态生成的有序列表项的div。您可以在浏览器开发人员工具中看到这一点,使用Edge中的F12或类似的Firefox,Chrome等...
$URI = 'https://www.python.org/downloads/release/python-2716'
$R = Invoke-WebRequest -URI $URI
$R.AllElements |
Where {$_.Class -eq 'container' }
$R.AllElements |
Where {$_.Class -eq 'list-row-container menu' }
($R.AllElements |
Where {$_.class -eq 'list-row-container menu'}).innerText
($R.AllElements |
Where {$_.Class -eq 'release-number' })
($R.AllElements |
Where {$_.Class -eq 'release-number' }).outerHTML
(($R.AllElements |
Where {$_.Class -eq 'release-number' }).outerHTML -split '<a href="|/">Python')[2]
或者只是这样做......
$R.Links
$R.Links.href
$R.Links.href -match 'downloads'