带有随机令牌+表单的Invoke-WebRequest不可用

时间:2019-10-01 20:48:41

标签: powershell invoke-webrequest

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

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

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

调用WebRequest -Uri“ www.netvendor.net/login”-方法GET -UseBasicParsing

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

  • 电子邮件
  • 密码
  • _token

不幸的是,每次启动浏览器会话时都会随机生成令牌。如果您在页面上查看源代码并搜索“ _token”,则将获得所需的参数。似乎没有任何方法可以从页面中检索到它?我对此时的操作有些困惑,尤其是因为我没有API或其他任何可以使用的东西。

1 个答案:

答案 0 :(得分: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