【问题标题】:how to access neteller account by Invoke-WebRequest如何通过 Invoke-WebRequest 访问 neteller 帐户
【发布时间】:2019-04-25 15:19:21
【问题描述】:

我想通过 Invoke-WebRequest 访问我的 neteller 帐户。

我找到了要填写的字段

<input type="password" name="password" id="form-login-password" maxlength="32" placeholder="Password" autocomplete="off" pattern=".*" required="" value="Welcome 123">

我已经试过这段代码的东西了。

$content=Get-Content "$home\Downloads\test log\NETELLER » Signin.html"
$qw=Invoke-WebRequest https://member.neteller.com -Method Post -Body $content -SessionVariable test

在文件中使用密码和登录名但同样的问题。

我想在登录完成后获取页面。

【问题讨论】:

  • 请澄清这一点……“我想在登录完成后获取页面。” …因此,您提供用户名、密码,然后在“登录”按钮上执行单击事件(顺便说一句,您没有为请求或提交显示代码)。然而,在快速尝试抓取页面以供表单元素使用时,由于站点编码的方式,自动化被阻止/阻碍。因此,这意味着您需要重新考虑这项工作。
  • 是的,我提供了用户名和密码.....“然后在“登录”按钮上执行点击事件(您没有为请求或提交显示 btw 的代码)“。 ...如何获取按钮事件以及如何使用它?
  • 我找到了这个 并且事件是这个member.neteller.com/assets/…
  • 查看我的更新。

标签: powershell webrequest neteller


【解决方案1】:

从评论部分移到更具体的 OP。

至于你的cmets...

如何获取按钮事件以及如何使用它?

我找到了这个

input type="submit" name="btn-login" class="button radius" value="登录" id="btn-login"

有几种方法,但同样,网站,它的编码方式,实际上阻止了一些自动化操作。所以,我的观点是,他们似乎不希望人们在他们的网站上使用自动化。

单击按钮、链接等需要浏览器 UI 可见。你似乎想要做这个不可见的,但我可能是错的。

考虑到所有因素,有几种方法可以点击。完全取决于网站设计者以及他们可以采取的行动。下面是一些来自网站的示例,我不得不处理单页和多页/表单网站,它们允许自动化。

# Starting here...
$ie.Document.getElementsByName('commit').Item().Click();

# Or
$ie.document.IHTMLDocument3_getElementsByTagName("button") | 
ForEach-Object { $_.Click() }

# Or
($ie.Document.IHTMLDocument3_getElementsByTagName('button') | 
Where-Object innerText -eq 'SIGN IN').Click()

# Or
($ie.document.getElementById('submitButton') | 
select -first 1).click()

# Or ...
$Link=$ie.Document.getElementsByTagName("input") | 
where-object {$_.type -eq "button"}
$Link.click()

# Or ...
$Submit = $ie.document.getElementsByTagName('INPUT') | 
Where-Object {$($_.Value) -match 'Zaloguj'}
$Submit.click()

# Or
$ie.Document.getElementById("next").Click()

# Or
$SubmitButton=$Doc.IHTMLDocument3_getElementById('button') | 
Where-Object {$_.class -eq 'btn btn-primary'}
$SubmitButton.Click()

# Or
Invoke-WebRequest ("https://portal.concordfax.com/Account/LogOn" + 
$R.ParsedHtml.getElementsByClassName("blueButton login").click

这是我的意思的完整示例。

搜索网站以获取对象信息。

$url = 'https://pwpush.com'
($FormElements = Invoke-WebRequest -Uri $url -SessionVariable fe)  
($Form = $FormElements.Forms[0]) | Format-List -Force
$Form | Get-Member
$Form.Fields

使用网站上的信息

$IE = New-Object -ComObject "InternetExplorer.Application"

$FormElementsequestURI = "https://pwpush.com"
$Password = "password_payload"
$SubmitButton = "submit"

$IE.Visible = $true
$IE.Silent = $true
$IE.Navigate($FormElementsequestURI)
While ($IE.Busy) {
    Start-Sleep -Milliseconds 100
}

$Doc = $IE.Document
$Doc.getElementsByTagName("input") | ForEach-Object {
    if ($_.id -ne $null){
        if ($_.id.contains($SubmitButton)) {$SubmitButton = $_}
        if ($_.id.contains($Password)) {$Password = $_}
    }
}

$Password.value = "1234"
$SubmitButton.click()

【讨论】:

  • 你好,我用的是IE的第二个选项。这样做对我来说更容易,因为我可以看到..... Invoke-WebRequest ("portal.concordfax.com/Account/LogOn" + $R.ParsedHtml.getElementsByClassName("blueButton login").click 我没想到这个选项是可能的(点击事件与 webrequest )...你能解释为什么是 IHTMLDocument3 而不是 IHTMLDocument4 或其他数字吗?....我怎么知道登录页面是 document3 或 5 或 1 ?Thx 。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-01-21
  • 2019-01-10
  • 1970-01-01
  • 1970-01-01
  • 2018-10-31
  • 1970-01-01
  • 2020-05-06
相关资源
最近更新 更多