Jquery 如何使用PowerShell调用WebRequest Post

Jquery 如何使用PowerShell调用WebRequest Post,jquery,python,html,powershell,webrequest,Jquery,Python,Html,Powershell,Webrequest,我知道我们应该添加尽可能多的细节,但我不知道这是如何工作的,所以我的细节将是最低限度的。我不确定这是否是正确的/最好的方法,所以请对我宽容一些。以下是我的情况: 我想从网页上获取信息。我不能给你这个网页,因为它是公司内部的。基本上,这个网页有一个表单,有一堆文本框和几个按钮(其中一个是提交)。我希望通过编程方式(使用PowerShell,或者使用Python之类的东西,如果它工作得更好的话)web请求页面提交一条信息并获得结果 我基本上有一个名单,我需要循环通过。手动完成后,每个名称将粘贴到页面

我知道我们应该添加尽可能多的细节,但我不知道这是如何工作的,所以我的细节将是最低限度的。我不确定这是否是正确的/最好的方法,所以请对我宽容一些。以下是我的情况:

我想从网页上获取信息。我不能给你这个网页,因为它是公司内部的。基本上,这个网页有一个表单,有一堆文本框和几个按钮(其中一个是提交)。我希望通过编程方式(使用PowerShell,或者使用Python之类的东西,如果它工作得更好的话)web请求页面提交一条信息并获得结果

我基本上有一个名单,我需要循环通过。手动完成后,每个名称将粘贴到页面上的一个文本框中,单击提交按钮,结果将弹出

我想循环浏览名称列表,并对每个项目执行post webrequest,然后获取结果。这可以通过PowerShell完成吗

我一直在胡乱处理invokewebrequest,但我不完全确定它是如何工作的。我很确定网页可以执行post请求,因为当我执行

$req = Invoke-WebRequest -URI https://www.foobar.com -Method Post
我没有收到任何关于网页不接受帖子的错误。有什么建议吗

以下是网页中的一些相关代码:

<button class="Button k-button k-button-first SearchButton" data-categorytext="#SearchByValue, #ServerRequestValue" data-summary="" id="btnSearch_SearchBy">Search</button>
<script>
    jQuery(function(){jQuery("#btnSearch_SearchBy").kendoButton({});});
</script>
搜索
jQuery(function(){jQuery(“#btnSearch_SearchBy”).kendoButton({});});
我需要向其提供信息的文本框

<input class="k-textbox SearchField" data-summary="Server Name like " id="ServerNameSearchValue" name="ServerNameSearchValue" style="width: 300px;" type="search" value="SOME_SERVER_NAME_FROM_MY_LIST" />


提交表单时,页面上会弹出一个窗口,显示结果。页面不会重新加载或执行任何操作,因此在执行post请求后是否需要在页面上执行get请求以从新窗口获取信息

您需要指定要在HastTable中发送的POST参数:

# Name is the field name on the form
$params = @{Name = 'Some Name'}
$results = Invoke-WebRequest -Uri http://example.com/foobar -Method POST -Body $params
通过查看生成的HTML并将其添加到数组中,可以获得组合框/文本框,如下所示: 您还可以将GET请求与Invoke WebRequest一起使用,然后解析HTML以获取文本框名称,并使用名称和值构建上面的数组。如果你想让你的代码更通用,这会更复杂,但也很有价值


但是,无论如何,您都必须在Powershell脚本中设置这些组合框/文本框的值。

我想我需要参数,但我不确定如何使用它们。页面上有14个组合框/文本框,但我只需要向其中一个提供信息,而其余的保持空白/不变<代码>我应该向参数提供文本框的哪个方面?身份证/姓名?其他的文本框呢?可以安全地忽略它们吗?此外,一旦我提交请求,我如何访问结果?
$params = @{TextBox1 = 'Some Name'; TextBox2 = 'Some Name'}