web-dev-qa-db-ja.com

Invoke-WebRequestですべてのコンテンツを表示する

そこで、コマンドプロンプトではなくPowerShellの使用を開始することにしました。そして、curlを実行したいと思います。非常に異なる出力は、curlがPowerShellのInvoke-WebRequestのエイリアスであることを発見します。

PowerShell curlを実際のcurlと同じ方法で使用すると、表示されるコンテンツの一部しか取得できません。

PowerShell curlの出力を変数に入れてから$variable.Contentを使用してすべてのコンテンツを表示できることを確認しましたが、実際のcurlよりも余分な作業のようです。

すべてのコンテンツを直接表示するオプションはありますか?ヘルプに表示されません。

19
John

curl コマンドラインユーティリティとは異なり、Invoke-WebRequestは、要求されたドキュメントのコンテンツが1つだけであるさまざまなプロパティを持つオブジェクトを返します。次のようにプロパティを展開すると、1つのステートメントでコンテンツを取得できます。

Invoke-WebRequest 'http://www.example.org/' | Select-Object -Expand Content

または、次のようなドット表記でプロパティ値を取得します。

(Invoke-WebRequest 'http://www.example.org/').Content

または、Windowsポートの curl を使用できます。

& curl.exe 'http://www.example.org/'

Invoke-WebRequestのエイリアスcurlと区別するために、拡張子を付けてプログラムを呼び出します。

32
Ansgar Wiechers

このようなもの?

$res=Invoke-WebRequest "https://www.google.fr/" 


#for look html of body
$res.ParsedHtml.body.innerHTML

#for look text of body
$res.ParsedHtml.body.innerText
1
Esperento57

さて、余分なタイピングに悩まされている場合、これはそれを達成するための最短の方法です(少なくとも、私は考えることができます):

(iwr google.tt).content
0
4c74356b41