0

我正在尝试在以下网站上执行此操作:https ://www.netvendor.net/login

我正在尝试自动登录网站并启动一个脚本来为我们批量创建用户。

如果您在此页面上运行 Invoke-WebRequest,它会返回信息,但不会返回有关表单的信息。它们根本不显示。但是,如果您查看页面源或检查元素,页面上显然有表单,它们不是由 JS 或其他任何会弄乱它的东西组成的。如何让 PowerShell 识别这些字段?我正在使用以下命令:

Invoke-WebRequest -Uri "www.netvendor.net/login" -Method GET -UseBasicParsing

由于上述问题,我决定通过检查请求来发布我需要的信息。该请求需要三件事:

  • 电子邮件
  • 密码
  • _token

不幸的是,每次启动浏览器会话时都会随机生成令牌。如果您在页面上查看源并搜索“_token”,您将获得所需的参数。似乎没有任何方法可以从页面中检索它?在这一点上我有点迷茫,特别是因为没有 API 或其他任何东西可供我使用。

4

1 回答 1

0

对于所有感兴趣的人,这是最终的工作脚本:

$nvlogin = Invoke-WebRequest "https://www.netvendor.net/login" -SessionVariable "netvendor"
$nvtoken = $nvlogin.InputFields.Where({ $_.Name -eq "_token" })[0].Value

$nvbody = @{ 
    "_token" = $nvtoken
    "email" = "your.name@website.com"
    "password" = 'credentials'
}

Invoke-WebRequest -Uri "https://www.netvendor.net/login" -WebSession $netvendor -Method 'POST' -Body $nvbody
于 2019-10-01T22:52:51.037 回答