Search

2018/02/10

powershellでWEBサイトにログインした状態にする:セッションの保存

Invoke-WebRequest に SessioinVariable をつけてセッションを保存。
$Ret=Invoke-WebRequest $LOGIN_URL -SessionVariable fb; ってすると、
$fbという変数にセッションが保存されます。
あとは、フィールドにユーザ名とパスワードを入力してPOSTする。

ログインしたあとは、
$Ret=Invoke-WebRequest -Uri $URL -WebSession $FB; ってすると、
ログイン状態でHTMLが表示されます。
searchフィールドにワード入れてPOSTすれば使えば、検索結果も表示可能。

フィールド名はWEBサイトごとに設定されているのでコードから読む。
ログインのURLもForm.filedから読む。
と言っても、user-agentとかで判定してるのもあるので、うまくいかないときもあり。
ヘッダーとかいろいろと変更すると何とかなるかも。

#------The software is public domain/cc0. 
#------BEGIN
$LOGIN_URL = http://aaa.bbb.com;
$Ret=Invoke-WebRequest $LOGIN_URL -SessionVariable fb;
$Form = $Ret.Forms[0];
$Form.Fields["username"] = "user@mail.com";
$Form.Fields["password"] = "pass123";
$Ret=Invoke-WebRequest -Uri ($LOGIN_URL + $Form.Action) -WebSession $FB
-Method POST -Body $Form.Fields
#------END


Invoke-WebRequest Powershell5.1
ここのsample2のとこ。
https://docs.microsoft.com/ja-jp/powershell/module/Microsoft.PowerShell.Utility/Invoke-WebRequest?view=powershell-5.1


0 件のコメント:

コメントを投稿