从HTML获取文本(allElements)

时间:2017-07-14 13:20:46

标签: html powershell

我有一个用于登录网站的脚本,它正在运行。对于我的下一步,我需要从$login.AllElements获取一个链接。 我需要的文字是

administration/uploadprofileselector.aspx?l=English&uid=1234&oid=123456

我如何从中捕获它?

我尝试了$login.AllElements | ? {$_.innerHTML -like "File Upload Utility"},但它无效。

PS> $login.AllElements

innerHTML : Main Menu
 ......more html stuff....
 item title="Transfer In And Out" url="reports/TransferInAndOut2.asp?l=English"
 item title="Seize Items" url="administration/SeizeReport.asp?l=English"
 item title="File Upload Utility" url="administration/uploadprofileselector.aspx?l=English&uid=1234&oid=123456" >

内部HTML:

<HEAD>
<TITLE>Main Menu</TITLE>
<SCRIPT language=javascript>
<!--
<item title="Seize Items" url="administration/SeizeReport.asp?l=English" ></item>
<item title="File Upload Utility" url="administration/uploadprofileselector.as px?l=English&amp;uid=1234&amp;oid=123456" ></item>

1 个答案:

答案 0 :(得分:1)

您要查找的值是HTML注释,因此您无法使用DOM方法轻松提取它。尝试这样的事情:

$login.AllElements.InnerHtml | Where-Object {
    $_ -match 'url="(administration/uploadprofileselector.aspx\?.*?)"'
} | ForEach-Object {
    $matches[1]
}