簡體   English   中英

如何使用PowerShell Invoke-WebRequest發布

[英]How to use PowerShell Invoke-WebRequest Post

我知道我們應該添加盡可能多的詳細信息,但是我對此工作原理並不了解,因此我的詳細信息將是最少的。 我不確定這是否是正確的/最佳方法,所以請放輕松。 這是我的情況:

我想從網頁獲取信息。 我無法給您該網頁,因為它是公司內部的。 基本上,該網頁具有一個帶有一堆文本框和幾個按鈕(一個正在提交)的表單。 我想以編程方式(使用PowerShell-或其他類似Python的工具(如果能更好地工作))請求網頁提交信息並獲取結果。

我基本上有一個列表,我需要遍歷。 手動完成,每個名稱將被粘貼到頁面上的一個文本框中,單擊提交按鈕,然后將彈出結果。

我想遍歷名稱列表,並對每個項目執行發布Webrequest,然后獲取結果。 可以使用PowerShell完成嗎?

我一直在搞亂Invoke-WebRequest,但是我不完全確定它是如何工作的。 我非常確定網頁上可以執行發布請求,因為當我執行時

$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>

我需要向其提供信息的文本框

<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" />

提交表單后,頁面上會彈出一個窗口,顯示結果。 頁面不會重新加載或執行任何操作,因此在執行發布請求以從新窗口獲取信息之后,是否需要在頁面上執行get請求?

您需要指定POST參數以發送Hasthable:

# 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並將它們添加到數組中來獲得組合框/文本框,如下所示:

$params = @{TextBox1 = 'Some Name'; TextBox2 = 'Some Name'}

您還可以將GET請求與Invoke-WebRequest一起使用,然后解析HTML以獲取文本框名稱,並使用名稱和值構建上面的數組。 如果您想使代碼更通用,那會更復雜,但很有價值。

但是,無論如何,您都必須在Powershell腳本中設置這些組合框/文本框的值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM