2017-05-23 27 views
0

可能な限り多くの詳細を追加するはずですが、これがどのように機能するかはよく分かりませんので、詳細は最小限に抑えられます。私はこれが正しい/最良の方法であるかどうか分からないので、簡単に私に行ってください。ここに私の状況です:PowerShell Invoke-WebRequest Postの使い方

ウェブページから情報を得たいです。それは会社の内部にあるので、私はあなたにウェブページを与えることはできません。基本的に、このWebページにはテキストボックスとカップルボタンが1つずつあるフォームがあります(1つは送信されます)。私はプログラムで(PowerShellを使って、あるいはそれがもっとうまくいくならPythonのような何かのものを使って)Webから情報を提出して結果を得るページをリクエストしたいと思う。

私は基本的に私がループする必要がある名前のリストを持っています。手動で、各名前がページのテキストボックスに貼り付けられ、送信ボタンがクリックされ、結果がポップアップ表示されます。

名前のリストをループして、各項目に投稿後ウェブリクエストを行い、結果を取得したいと考えています。これはPowerShellで行うことができますか?

私はInvoke-WebRequestを使いこなしてきましたが、どのように動作するかは完全にはわかりません。私は、Webページは、私が

$req = Invoke-WebRequest -URI https://www.foobar.com -Method Post 

を実行したときに、私は記事を受け入れていないWebページに関するすべてのエラーを得ることはありませんので、それに対して実行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" /> 

に情報を提供する必要があるテキストボックス:ここで

は、Webページからいくつかの関連するコードです結果。ページがリロードされないなど、新しいウィンドウから情報を取得するために投稿要求を実行した後にページ上でリクエストを取得する必要がありますか?

答えて

0

あなたはHasthableに送信する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を見て、このような配列に追加することでコンボボックス/テキストボックスを取得することができます:

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

Invoke-WebRequestでGETリクエストを使用し、HTMLを解析してテキストボックス名を取得し、名前と値で上記の配列を構築することもできます。コードをより一般的なものにしたい場合、これはもっと複雑ですが貴重です。

ただし、Powershellスクリプトでこれらのコンボボックス/テキストボックスの値を設定する必要があります。

+0

私はパラメータが必要だと思ったが、どのように使用するのか分からない。ページには14個のコンボボックス/テキストボックスがありますが、残りの部分は空白/変更されていない状態のうちの1つに情報を入力する必要があります。 'テキストボックスのどの部分をパラメータに指定しますか? ID /名前?他のテキストボックスはどうですか?彼らは安全に無視できますか?また、リクエストを提出すると、どのように結果にアクセスできますか? – Thomas

関連する問題